首先讨论的是python 2处理时的问题,其实不是单单指中文名的问题,即使是中文名称,如果能够decode还是没问题的,比如用如下这些方法:
- –– coding: utf-8 –– 或者 –– coding: gbk ––
- 强制utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
- .decode(‘gbk’).encode(‘utf-8’)
- unicode(path_name,’utf8′)
当然path前加r, 或者wingdows转用反斜杠,然后用了这四种方法还不行,windows下执行提示windows error 123之类的错误,发现文件名中会有无法decode的符号问号 ?的,基本就是在python 2之下无法解决了。
Windows Error错误参考:
- WindowsError:[Error 2] 不存在这个文件
- WindowsError:[Error 3] 没有这个路径
- WindowsError:[Error 5] 权限问题
- WindowsError:[Error 13] 该文档被其它程序占用,处理不了
- WindowsError:[Error 123] 路径语法有误
- WindowsError:[Error 145] 目录非空,多在删除非空目录时出现
不要再花时间去解决python 2处理文件名的问题了,基本无法解决的,还是转用python 3吧,ITGeeker技术奇客测试已完美解决,用的是python 3.6的版本,而且是WSL的Ubunt版本测试的。而且现在更新到win10 2019 May的更新版,可以在微软商店直接下载3.7官方版本了,这是催促大家赶紧放弃python 2的节奏。
Python 3.6默认使用utf-8编码,当然你也可以再加上reload在文件首,但和python 2有所不同:
import importlib
import sys
importlib.reload(sys)
发表回复