Apparemment, une implémentation de la sortie csv tronque quelque part les séparateurs de champs de droite sur la dernière ligne et seulement la dernière ligne du fichier lorsque les champs sont NULL.Dites à csv.reader de dire quand il est sur la dernière ligne
csv Exemple d'entrée, les champs « c » et « d » sont nullable:
a|b|c|d
1|2||
1|2|3|4
3|4||
2|3
quelque chose comme le script ci-dessous, comment puis-je savoir si je suis sur la dernière ligne, donc je sais comment gérer il convient?
import csv
reader = csv.reader(open('somefile.csv'), delimiter='|', quotechar=None)
header = reader.next()
for line_num, row in enumerate(reader):
assert len(row) == len(header)
....
Notez que ce que vous avez posté n'est pas CSV. CSV signifie "Comma Sepaerated Values" - le séparateur DOIT être une virgule. –
La plupart des implémentations CSV vous permettent de spécifier un autre caractère comme séparateur –
@Neil: hein? "Le format CSV (Comma Separated Values) est le format d'importation et d'exportation le plus commun pour les feuilles de calcul et les bases de données Il n'y a pas de" standard CSV "[..] Pourtant, les délimiteurs et les caractères de citation assez similaire que. [..] " – SilentGhost