2017-02-20 7 views
1

sep=,を最初の行に持つCSVファイルがあります。書き込み時にstandart CSVモジュールで 'sep ='行を使用できますか

with open("file.csv", 'r', encoding='utf-8') as file: 
    file.readline() 
    fp = csv.DictReader(file, dialect='excel', delimiter=',') 

と同じ:

with open("file.csv", 'w', encoding='utf-8') as file: 
    file.writeline() 
    fp = csv.DictWriter(file, dialect='excel', delimiter=',') 

を今のように見える例

sep=, 
Col 1,Col 2, 
11.01.2017 21:56,Some data 
.... 

そして、私はそれを読んで、csvモジュールとそれを記述する必要があるため

しかし、私はcsv形式でこのようなcsv形式をサポートするための標準的な方法があるのだろうか?

答えて

1

file.readline()を呼び出すと、値から 'sep ='を取り除き、変数に代入することができます。その変数をデリミタとして使用してください:

csv_sep = file.readline()[4:] 
fp = csv.DictReader(file, dialect='excel', delimiter=csv_sep) 
+1

ええ、私はそれを知っていますが、それを扱うための標準的な 'csv'mofruleの特別なフォーマットがあるかどうかです。 'dialect = 'excel_with_sep_line''を使います。dialect = 'excel'のinsted – GhostKU

関連する問題