python 读取带中文的文件

Python015

python 读取带中文的文件,第1张

如果碰上中文文件名,必须用cp936或gb18030去解码它。如果你写了一个中文的文件名,而python根据utf-8规则去把它翻译成字节,就会在底层的文件名上不匹配,因为该中文在cp936的规则下翻译成另外的字节。报错是找不到该文件。

我参照了很多网上内容,有以下三种解决方法,前两种类似,是用unicode:

我们之前在Python2.x的时候,用requests上传文件是正常存储中文名字,但是使用Python3之后,文件名就变得不正常了。因为Java服务端接口不支持这种方式,于是只能修改Python脚本。

因为Python3使用requests的时候,会调用urllib3库—>fields.py的新处理逻辑

当文件名是中文的时候, value = email.utils.encode_rfc2231(value, 'utf-8') 就会转换格式为:

filename* 这种格式的键值对。

当然改源码文件是最快的,但是这样不利于移植。

还是修改下requests请求吧。

python读取中文名的文件一直比较麻烦

目前得到的可靠解决方案:

strPath = "类.py" #这里的strpath是你的中文路径名

a = unicode(strPath , "utf-8")

print list(fileinput.input(a))