python 读取带中文的文件

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

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

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

python变成中文版的实现方法如下:

首先下载pycharm汉化包;

然后将“resources_en.jar”文件更名为“resources_cn.jar”;

最后将“resources_cn.jar”文件复制回lib文件夹内即可。

PS:建议不要使用汉化版,会导致一些小问题,例如设置界面显示不完整等。

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

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

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

filename* 这种格式的键值对。

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

还是修改下requests请求吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12000107.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存