python用writerow写入包含逗号的一行,自动添加多余双引号

在对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

问题得到解决。

猜你喜欢

转载自blog.csdn.net/lekmoon/article/details/87776892