Cosa posso usare per diff due file CSV a livello di campo, mettendo in evidenza i campi esatte che hanno cambiato? Si assuma un semplice formato CSV in cui le virgole appaiono solo come separatori di campo e da nessun'altra parte.Strumento per diffare i file CSV a livello di campo?
risposta
Prova git diff
:
git diff --color-words x.csv y.csv
csvdiff
è uno strumento a riga di comando scritto in Python che mette a confronto i file CSV sul livello di campo: https://pypi.python.org/pypi/csvdiff
sembra che mentre è campo-aware, confronta le linee, non i campi - e non mostra quali campi (al contrario di quali linee) differiscono. – einpoklum
git diff --word-diff-regex
offre un modo per mostrare i cambiamenti a livello di campo. Vedere Also use comma as a word separator in diff
Questa soluzione funziona bene per mostrare i cambiamenti in un file CSV con i numeri e senza spazi. Ad esempio, supponiamo che abbiamo cambiato un numero
1,1,1,1,1,1,1,1
a
1,1,2,1,1,1,1,1
Se usiamo git diff --word-diff-regex="[^[:space:],]+" x.csv y.csv
, allora otteniamo:
1,1,[-1-]{+2+},1,1,1,1,1
Questo può essere molto utile per un file CSV con molti colonne.
è possibile utilizzare questo strumento https://github.com/maozza/helpers-scripts/blob/master/csv_diff.py Lo script crea due file:
field_change_sum.csv
- contenere il numero di cambiamenti in ogni campo
results_details.json
- contenere i cambiamenti nel formato JSON
@einpoklum - no-index se non è impegnata – Hatshepsut