6

リストをcsvに書き込もうとしていますが、そうすると、フィールド値の前後にラッパー引用符が表示されます。

number1,number2
"1234,2345"
"1235.7890"
"2345.5687"

このコードの使用:

with open('C:\\temp\\test.csv', 'wb') as out_file:
...     csv_writer = csv.writer(out_file, delimiter=',')
...     csv_writer.writerow(('number1','number2'))
...     for f in myList:
...         csv_writer.writerow(f)

さらに調査した結果、次のコマンドを使用して引用符の書き込みを削除できることがわかりました。

quotechar =''、quoting = csv.QUOTE_NONE **

これをコードに適用すると、次のエラーが発生します。

トレースバック(最後の最後の呼び出し):ファイル ""、4行目、エラー:エスケープする必要がありますが、escapecharが設定されていません

with open('C:\\temp\\test.csv', 'wb') as out_file:
...     csv_writer = csv.writer(out_file, delimiter=',',quotechar='', quoting=csv.QUOTE_NONE)
        csv_writer.writerow(('number1','number2'))
...     for f in myList:
...         csv_writer.writerow(f)

これらの引用符を削除するにはどうすればよいですか?

編集

myListは次のようになります。

     [['1234,2345'], ['1235,7890'], ['2345,5687']]
4

1 に答える 1

7

リストにあるのは数字ではなくテキストで、区切り文字も含まれています。つまり、これをcsvとしてエクスポートするには、エスケープする必要があります。

データを正しく書き込むには、データをcsvにエクスポートする前にデータを数値に変換する必要があります。

編集:一方、データはすでにカンマ区切りの値で構成されているように見えます-csvライターを使用せずに直接ファイルに書き込んでみませんか?

于 2012-07-07T05:55:03.893 に答える