导语:
本文主要介绍了关于python writerow乱码怎么解决的相关知识,包括png_write_row,以及湖南益阳新增本土确诊0例这些编程知识,希望对大家有参考作用。
从 csv 文件读取数据,然后将其写入另一个 csv 文件时存在乱码问题。
注意点:
writerow函数中需要的参数是可迭代的,比如列表,但是不能直接写字符串,否则会乱码。
例子:
在这个函数中,我直接使用readlines读取csv文件,这样读取的每一行都是一个字符串,然后直接将字符串写入新的csv文件,当然是乱码了。
import csv
def test_writerow():
path = "D:/liqian/aa.csv"
path1 = "D:/liqian/bb.csv"
with open(path,'rb') as f,open(path1,'ab+') as w:
for line in f.readlines(): #注意这里的line是字符串,这样直接写会乱码
print type(line)
csvw = csv.writer(w)
csvw.writerow(line)
解决方式一:
读取 csv 文件时出现问题。如果使用csv的read函数读取,读取的每一行都是一个list,可以直接写入新的csv文件。
def test_readrow():
path = "D:/liqian/aa.csv"
path1 = "D:/liqian/cc.csv"
with open(path,'rb') as f,open(path1,'ab+') as w:
csvr = csv.reader(f) #利用csv包自带的reader函数,
csvw = csv.writer(w)
for line in csvr: #这样每一行就是一个列表,可以直接写到新的csv文件
csvw.writerow(line)
解决方式二:
也可以将原来是字符串的行分开并手动创建一个列表。
def test_makerow():
path = "D:/liqian/aa.csv"
path1 = "D:/liqian/dd.csv"
with open(path,'rb') as f,open(path1,'ab+') as w:
csvw = csv.writer(w)
for line in f.readlines():
line_list = line.split(",")
#原文件是csv格式的,所以line是一个包含多个逗号的字符串,这里我用逗号分割,可以形成一个列表
csvw.writerow(line_list)
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何使用pycharm开发图形界面?08/25
- ♥ python中绘制散点图的两种方法08/23
- ♥ 提高国内访问 GitHub 的速度的 9 种方案01/27
- ♥ 你用什么软件写Python代码?01/01
- ♥ 如何计算python列表中元素的频率?10/05
- ♥ 如何调试python代码08/28
内容反馈