0

次のようにcsv.writerを使用して、文字列の行(ヘッダー行)をcsvファイルに書き込もうとしています:

mbfile=open(pathtodata + "mbsensors.csv", "ab")
writer=csv.writer(mbfile)

writer.writerow(["ESReadings"])

i=1
tempstring='DateTime'

while i<=numsensors:
    tempstring=tempstring+','+ "%02d"%i +'.Cooked'
    i=i+1

print tempstring
writer.writerow([tempstring])
mbfile.close

(最初の行がインデントされた理由はわかりません - 私のコードではそうではありません)。

Linux で Python 2.7.3 を使用します。

writer.writerow(["ESReadings"]) は、二重引用符で囲まなくても問題なく書き込みます。

print tempstring が期待どおりに画面に表示されます。

writer.writerow([tempstring]) は、二重引用符で囲まれていることを除いて、正常に書き込みます。

このデータを Windows プログラムにインポートしていますが、引用符が気に入りません。どうすれば引用符を避けることができますか?

4

1 に答える 1

1

csv ライターは、単一のエントリを書き込もうとしていると考えているため、文字列全体を引用符で囲んでいます。行を文字列のリスト (またはその他のイテラブル) として渡し、ライターにコンマを挿入させる必要があります。このようなもの:

tempstring=['DateTime']
while i<=numsensors:
 tempstring.append("%02d"%i +'.Cooked')
 i=i+1
 print tempstring
 writer.writerow(tempstring)
于 2012-05-23T03:37:19.203 に答える