明らかに、csv出力の実装によっては、フィールドの区切り文字が最後の行の右側から切り捨てられ、フィールドがNULLの場合はファイルの最後の行のみが切り捨てられます。csv.readerに最後の行があることを伝える
例入力CSV、フィールド「C」と「D」はNULL可能です:下記のスクリプトのようなもので
a|b|c|d
1|2||
1|2|3|4
3|4||
2|3
、どのように私は私が対処する方法を知って、私は最後の行にしていますかどうかを伝えることができますそれは適切ですか?
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)
....
投稿した内容はCSVではありません。 CSVは「Comma Sepaerated Values」の略です。セパレータはカンマでなければなりません。 –
ほとんどのcsv実装では、セパレータとして代替文字を指定することができます –
@ Neeil:huh? "CSV(カンマ区切り値)形式は、スプレッドシートとデータベースのための最も一般的なインポートとエクスポートの形式ですが、" CSV標準 "はありません[..]それでも区切り文字と引用文字は異なりますが、 [..] " – SilentGhost