python读取中文目录或文件名

python对中文的支持确实令人头疼不已,倒不是说解决不了,只是总为了解决编码的问题反复折腾有点浪费时间。

这不今天又碰到了编码问题,列出目录下的子文件夹和文件名时,中文显示成了这个样子:

'\xe7\xa7\x9f\xe8\xb5\x81\xe6\xb5\x81\xe7\xa8\x8b (1).png'

这是神马玩意儿?

怎么办,还得去检测并转换编码。

《可爱的python》提到chadet专干这事儿,于是下载安装了chardet,发现检测编码很方便很准确。

检测字符串ustring的编码:

codedetect = chardet.detect(ustring)["encoding"]

将编码codedetect转成unicode

ustring = unicode(ustring, codedetect)

将unicode编码成utf-8

ustring.encode("utf-8")


为什么最后转成utf-8? 

因为绝大多数人为了避免“中文问题”,都在py文件的第一行加上了

# -*- encoding: utf-8 -*-

当然,如果你的不是这样的话,最后一步编码按你实际的情况就可以啦。


chardet下载地址:pypi.python.org/pypi/chardet/

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值