web-dev-qa-db-ja.com

特定の列が機能していない場合は、CSVファイルに二重引用符を付けて書き込みます

python csv writerを使用してcsvファイルを書き込もうとしています。

列の値の1つが "" [二重引用符]で囲まれている。 : 'col1' 'col2' "test"、ワードパッドでファイルを開くと、Wordテストは "test"と予想されますが、実際の結果は "" "test" ""です。

誰かがこの問題を案内できますか?.

私の試用のサンプルスニペット:

csvReader = csv.reader(iInputFile)
writer = csv.writer(open('one_1.csv', 'wb'), delimiter=',', lineterminator='\r\n')

for row in csvReader:
     rawRow = []
     rawRow.append('31-7-2014') #Appending Date
     rawRow.append(row[0])   #Appending data
     rawRow.append('\"'+'test'+'\"') 
     writer.writerow(rawRow)
11
Emma

これで試して

f_writ = open('one_4.csv', 'wb')
csvReader = csv.reader(iInputFile)
writer = csv.writer(f_writ, delimiter=',',
                lineterminator='\r\n',
                quotechar = "'"
                )

for row in csvReader:

    writer.writerow(['31-7-2014',row[0],'\"text\"'])

f_writ.close()

また、私はこのリンクが非常に役立つと思います http://pymotw.com/2/csv/ 、たくさんの見本があります

13
GiovanniPi

おそらく、パラメーターの引用とescapecharで遊ぶ必要があります。

たとえば、変更されたコード

csvReader = csv.reader(iInputFile)
writer = csv.writer(open('one_1.csv', 'wb'), delimiter=',', lineterminator='\r\n', quoting=csv.QUOTE_NONE, escapechar='\\')

for row in csvReader:
     rawRow = []
     rawRow.append('31-7-2014') #Appending Date
     rawRow.append(row[0])   #Appending data
     rawRow.append('\"'+'test'+'\"') 
     writer.writerow(rawRow)

そのような出力を生成します:

31-7-2014,'col1',\"test\"
3
Vasily Ryabov