python csv.writerow写入文件乱码问题
发布日期:2021-06-21 09:00:10
浏览次数:2
分类:技术文章
本文共 1204 字,大约阅读时间需要 4 分钟。
总述:
将数据从一个csv文件读出来,然后写入另外一个csv文件中出现乱码问题。
注意点:
writerow函数中需要的参数是要可迭代的,例如列表,但是不能直接写字符串,否则就会乱码。
例子:
在这个函数里面,我直接用的readlines读的csv文件,这样读出来每一行都是一个字符串,然后在吧这个字符串直接写入了新的csv文件中,理所当然的乱码了。
import csvdef 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函数去读的话,读出来每一行就是一个列表,这样可以直接写入到新的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)
解决方式二.
把原来是字符串的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)
转载地址:https://blog.csdn.net/lwgkzl/article/details/82259741 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年02月28日 11时34分12秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
mysql modify语句格式_40条MySQL数据库语句格式
2021-06-24
mysql忽略大小写jpa解决_JPA 大小写敏感问题
2021-06-24
MySQL5.7 固态盘性能设置_MySQL 5.7 安装完成后,立即要调整的性能选项
2021-06-24
mysql.net 环境配置_windows环境下下安装配置mysql5.7.24
2021-06-24
servlet对象是在服务器端还是在客户端被创建?_Servlet编程之会话管理
2021-06-24
webpack卸载_webpack的安装
2021-06-24
mysql主库线程_MySQL 主从扩展--主库的线程状态
2021-06-24
mysql一秒最多写多少次_Mysql的两种“超过多少次”写法(力扣596)
2021-06-24
mysql el函数_MySQL中的常用函数
2021-06-24
mysql 备份 晓燕_mysql字符串函数
2021-06-24
mysql返回第n个值_获取mysql一组数据中的第N大的值
2021-06-24
java 获取请求的路径_JavaWeb-request获取请求路径的相关方法
2021-06-24
java 适应边框_带边框自适应宽度100%的解决办法
2021-06-24
router vue 页签文字_记一次基于vue的spa多页签实践经验
2021-06-24
估计的商是什么意思_商是什么意思,商的繁体字,商有几笔,商字几画
2021-06-24
java读文件几种方式_JAVA读取文件的几种方式
2021-06-24