python写入csv文件乱码问题

最近刚开始学python,也同样经常被编码问题困扰。
一开始是编辑器,到终端,再到输入,再到保存的html文件,现在到csv文件。
各种各样的乱码问题,层出不穷,gbk utf-8 unicode byte都快弄烦了。
今天在用scrapy爬智联并且保存到csv文件的时候又出现了中文乱码。
乱码
查了一下,一种方法是用文本编辑器,如:Notepad++打开。这个方法虽然有效,但是不治本。
另一种方法是用scrapy自带的序列化导出,FEED_EXPORT_ENCODING = ‘gb2312’,在我这试了无效,不知道什么原因。
后来又查了资料说,对于 CSV 文件,Excel 需要它有一个元信息来说明它的编码,那 CSV 是纯文本文件怎么设置元信息呢?微软就定义了一个自己的格式叫 BOM 头,这个 BOM 头在被其他的表格展示器(比如 Numbers 或者 Libre Office)打开的时候会被忽略,但对 Excel 就很关键。
所以要在写入csv文件的之前添加一行代码加上BOM头:
filename.write(codecs.BOM_UTF8)
成功 - -!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值