我正在尝试使用python csv编写器编写一个csv文件。
其中一个列值包含在“”中(双引号),例如:'col1''col2'“ test”,当我在写字板中打开文件时,单词test预期为“ 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)
尝试这个
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/,有很多例子
可能您需要使用引号和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\"
据我从@GiovanniPi接受的答案中得知,默认值为
quotechar= '"'
因为预期的输出已经有双引号,所以必须将其更改为:
quotechar = "'"
我不确定如果需要同时使用单引号和双引号,因为quotechar需要一个1个字符的字符串,该怎么办