在对CSV文件进行操作的的时候,用writerow写入一行文字,如果这一行文字(字符串)中包含有逗号,则自动在行首和行尾(字符串两头)添加双引号。建议使用write写入。
temp.csv文件第2行包含有逗号:
TimeStamp=2019-02-13
1232a,abc
rmUID1
2234
22345
程序代码:
# -*- coding: utf-8 -*-
import csv
from itertools import islice
oldf = open('temp.csv','r',newline='')
newf = open('temp2.csv','w',newline='')
nf = csv.writer(newf,lineterminator='\n')
for line in islice(oldf,0,5):
listn = []
line = line.strip('\n')
listn.append(line)
print(listn)
nf.writerow(listn)
oldf.close()
newf.close()
显示:
['TimeStamp=2019-02-13\r']
['1232a,abc\r']
['rmUID1\r']
['2234\r']
['22345']
实际在temp2.csv文件中第2行自动添加双引号:
TimeStamp=2019-02-13
"1232a,abc "
rmUID1
2234
22345
修改后代码:
import csv
from itertools import islice
oldf = open('temp.csv','r',newline='')
newf = open('temp2.csv','w',newline='')
for line in islice(oldf,0,5):
line = line.strip('\n')
newf.write(line)
oldf.close()
newf.close()
结果文件:
TimeStamp=2019-02-13
1232a,abc
rmUID1
2234
22345
问题得到解决。