Lavoro con file CSV e talvolta ho bisogno di controllare rapidamente il contenuto di una riga o di una colonna dalla riga di comando. In molti casi cut
, head
, tail
e gli amici faranno il lavoro; tuttavia, il taglio non può affrontare facilmente situazioni come
"this, is the first entry", this is the second, 34.5
Qui, la prima virgola fa parte del primo campo, ma cut -d, -f1
non è d'accordo. Prima di scrivere una soluzione da solo, mi chiedevo se qualcuno conoscesse un buon strumento che esiste già per questo lavoro. Dovrebbe, almeno, essere in grado di gestire l'esempio sopra e restituire una colonna da un file formattato CSV. Altre caratteristiche desiderabili includono la possibilità di selezionare le colonne in base ai nomi delle colonne forniti nella prima riga, il supporto per altri stili di quotazione e il supporto per file separati da tabulazioni.
Se non conosci uno strumento del genere ma hai suggerimenti sull'implementazione di un programma del genere in Bash, Perl o Python o altri linguaggi di scripting comuni, non mi dispiacerebbe tali suggerimenti.
Risposta accettata:
Puoi usare csv
di Python modulo.
Un semplice esempio:
import csv
reader = csv.reader(open("test.csv", "r"))
for row in reader:
for col in row:
print col