前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次python写入txt文件正常,但是写入csv文件中文乱码问题

记一次python写入txt文件正常,但是写入csv文件中文乱码问题

作者头像
小海怪的互联网
发布2019-08-23 14:44:33
4.4K0
发布2019-08-23 14:44:33
举报

今天在将已经爬取完存成txt文件批量导入保存csv格式时,文本中的汉字能够正常正常显示,但是用正常的方法保存到csv中就成了乱码。 最开始的写法:

代码语言:javascript
复制
                    with open(city+'.csv','a+') as csv_file:
                        csv_file.write(line)

打开文件发是乱码,于是又重新改写增加

代码语言:javascript
复制
encoding='utf-8')                  

满心欢喜的去看生成的文件,但是又一次的让我失望而归,后来没办法去网上到处找资料 ,终于让我找到了方法,就是将原来的

代码语言:javascript
复制
'utf-8' 换成 'utf-8-sig'

代码如下

代码语言:javascript
复制
 with open(city+'.csv','a+',encoding='utf-8-sig') as csv_file:
                        csv_file.write(line)

这次果然成功了,不知道具体原因是什么,但是却实现了我想要的效果。 下面放出我写的简单的将当前目录下的所有txt文件转成 csv文件的代码,此代码会自动根据相应的文件夹名字保存csv文件的名称 并保存,写的不是很完善,有大佬看到的话,多多指教。 源码:

代码语言:javascript
复制
import csv
import os

root_path =os.path.dirname(os.path.abspath(__file__))+'\山东省'
# print(root_path)
city_list=os.listdir(root_path)
# print(city_list)
for city in city_list:
   # print(city)
   city_path=os.path.join(root_path,city)
   # print(city_path)
   for i in range(32):
       file_path=city_path+r'\{}.txt'.format(str(i))
       if not os.path.exists(file_path):
           continue
       else:
           with open(file_path,'r',encoding='utf-8') as f_txt:
               txt_lines=f_txt.readlines()
               # print(txt_lines)
               for line in txt_lines:
                   with open(city+'.csv','a+',encoding='utf-8-sig') as csv_file:
                       csv_file.write(line)
print('写入完成')
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档