python 解决读取文件时格式不支持的总结

目前在做的项目中,有一个列表用到的数据没有找到能直接满足需求的数据,给到我的文件里面是一张sql表,需要自己从sql表中,洗出自己需要的数据,于是想到了Python.

在使用python读取文件的时候,报了下面的错误:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb1 in position 0: invalid start byte.

网上一开始查到帖子说是编码格式不对,需要在python 文件的顶上添加 # codeing= utf-8,以支持中文编码,由于给到的sql 文件中,确实含有中文,于是就加上了上面的utf-8的支持,满怀希望的执行Python程序,结果还是报了同样的错。

经过一番查找,找到了真正的解决方法,就是文件的编码格式不对,需要在文件读取的时候设置正确的编码格式,或者直接修改文件的编码格式为程序默认支持的格式。解决方法如下:

1、查看文件的编码格式: vim/vi编辑器(进入esc命令模式),执行 set fileencoding,查看文件的编码格式,在Python程序中把文件读取时的格式设置为该编码格式,即能正确读取文件。
2、更改文件的编码格式: vim/vi编辑器(进入esc命令模式),执行命令, set fileencoding=utf-8,然后回车,此时我们将文件的格式改成了utf-8格式的了,使用utf-8读取,就能正确的读出文件。

总结

1、在Python文件顶部添加 `#encoding=utf-8`,只是设置当前Python文件支持中文的输入,并不能真正解决读取的文件的编码格式不支持的问题。
2、遇到读取的文件格式不支持的情况,正确的的做法还是,查看文件真正的编码格式,在程序读取的文件的时候,设置正确的编码格式;或者修改文件的编码格式为我们程序支持的格式。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值