很不凑巧,我刚好有”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\新
建文件夹