导语:
本文主要介绍了关于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)
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python数据挖掘中使用pandas包?11/29
- ♥ Python基本数据类型和基本操作11/12
- ♥ 招聘月份:Python 数据分析工作的机会11/08
- ♥ windows如何更新python版本10/25
- ♥ 如何在python中终止程序08/18
- ♥ 肝!超好懂的 Python 文件读写教程!01/02
内容反馈