Windows终端执行Python遇unicodeescape错误,用raw string仍报错
问题原因与解决方法
核心问题
你用了Python raw string但还是报错,根源是Windows终端的命令行解析优先级比Python代码高:
你写的r'C:\Users...'里的\U,会先被Windows终端当成特殊转义字符处理,等传到Python时,raw字符串的语法已经被破坏了,自然触发unicode解码错误。
几种可行的解决办法
- 给路径里的反斜杠加一层转义(变成双反斜杠),让终端解析后传给Python的是单个反斜杠:
python -c exec("""test = r'C:\\Users\\alexa\\Downloads\\_internal'""") - 用正斜杠替代反斜杠,Python在Windows环境下完全支持这种路径写法:
python -c exec("""test = 'C:/Users/alexa/Downloads/_internal'""") - 换一种引号嵌套方式,用单引号包裹整个
python -c的参数,内部用双引号写路径,同时转义反斜杠:python -c 'exec("""test = r"C:\\Users\\alexa\\Downloads\\_internal" """)' - 简化命令,去掉多余的
exec嵌套(更直观不易错):python -c "test = r'C:\\Users\\alexa\\Downloads\\_internal'"
内容的提问来源于stack exchange,提问作者Lenny4
相关产品推荐
相关产品推荐

