很不凑巧,我刚好有”e:\xx\新建文件夹”这么一个路径,把Python路径问题踩了个遍。
原始代码为:
input_path="e:\xx\新建文件夹"
print input_path
结果为:
File "xxxxx.py", line 1
SyntaxError: Non-ASCII character '\xe6' in file xxxxx.py on line 1, but no
encoding declared; see http://python.org/dev/peps/pep-0263/ for details
通过以下三个步骤解决问题:
1. 加入#coding=utf-8
Python2中默认的编码为ASCII,显示中文字符肯定会有问题,需要在文件第一行,即shabang行中加入#coding=utf-8
#coding=utf-8
input_path="e:\xx\新建文件夹"
print input_path
运行结果为:
e:\xx\鏂板缓鏂囦欢澶
2. 使用unicode()处理路径
#coding=utf-8
input_path="e:\xx\新建文件夹"
output_path = unicode(input_path , "utf8")
print output_path
结果为
ValueError: invalid \x escape
3. 处理\x问题
按上面的代码运行会出现”ValueError: invalid \x escape”错误,因为\x在Python中会认为是16进制数据。
所以尽量还是在路径中使用 \\
或者在字符串前加r
input_path="e:\\xx\\新建文件夹"
input_path=r"e:\xx\新建文件夹"
#coding=utf-8
input_path=r"e:\xx\新建文件夹"
output_path = unicode(input_path , "utf8")
print output_path
最终结果为:
e:\xx\新建文件夹