Python中文路径及"ValueError: invalid \x escape"的处理方法

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

你可能感兴趣的:(Python基础)