(Unicode错误)'unicodeescape' 编解码器无法解码位置16-17的字节:\uXXXX转义溢出
我想导入pyusb库中的一个模块,这个模块在d:\pyusb-1.0.0a2\usb这个路径下。所以首先我得把这个路径添加到sys.path
里。但是我收到了下面的错误信息。
注意:我可以成功导入d:\pyusb-1.0.0a2
这个路径里的内容!!!
Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import sys
>>> sys.path.append('d:\pyusb-1.0.0a2\usb')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 16-17: truncated \uXXXX escape
2 个回答
0
我在Flask中添加文件上传方法时遇到了语法错误,代码如下:
def upload(): if request.method == 'POST': f = request.files['file'] basepath = os.path.dirname(__file__) print(basepath) upload_path = os.path.join(basepath, 'static\files',secure_filename(f.filename)) f.save(upload_path) return redirect(url_for('upload')) return render_template('upload.html')
控制台显示的错误信息如下:
upload_path = os.path.join(basepath,r'static\files',secure_filename(f.filename))
所以,我认为这个问题是因为Unicode转义序列中的'\u'导致的,我们应该使用原始字符串来解决这个问题。
upload_path = os.path.join(basepath,r'static\files',secure_filename(f.filename))
13
你需要使用原始字符串
>>> sys.path.append(r'd:\pyusb-1.0.0a2\usb')
或者对反斜杠进行转义
>>> sys.path.append('d:\\pyusb-1.0.0a2\\usb')
或者使用正斜杠
>>> sys.path.append('d:/pyusb-1.0.0a2/usb')
否则,Python会把 \usb
解释成一个Unicode转义序列(就像 \uBEEF
),这样做会出错,原因很明显。