【发布时间】:2017-04-27 22:56:02
【问题描述】:
由于“C:\Users...”Microsoft 路径名中的“\U”,我一直在尝试在 python 3 中打开一个文件。我收到错误“SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes...”
我已阅读提供以下解决方案的此问题的其他答案:
将 \ 加倍以转义“\U”的 unicode
使用原始字符串文件名 = r"C:\Users.."
将 \ 切换为 /。
每当我使用选项 1 和/或 2 时,它都会加倍“\”。因此,文件路径是错误的,因为它读取的是 'C:\\Users\\..." 而不是 'C:\Users\...'
我正在尝试在工作中打开 excel 文件来操作数据,因此我无法使用选项 3,因为我无法更改文件路径。
有人可以解释为什么当我使用转义“\”或原始字符串时“\”会加倍吗?
我已经尝试了所有选项组合,但似乎无法让它发挥作用。
很抱歉对已回答的问题提出新问题,但我无法评论其他答案,并且已接受的答案对我不起作用。
谢谢
【问题讨论】:
-
您是一起尝试还是分别尝试 1 和 2?你真的试过 3 吗?
-
从“\”切换到“/”时实际上并没有改变路径,它甚至是
pwd>>> os.system("pwd") /Users/omer/Dropbox/school/16_fall的默认格式 -
我已经尝试了所有组合,但为了回答您的问题,我主要是分别尝试了它们。我会发布我正在做的事情的输出,这样你就知道我看到了什么
-
'C:\\Users\David\Desktop\mlb_stats_5AUG2016' 返回 '\\Users\\David\\Desktop\\mlb_stats_5AUG2016'
-
选项 1 和 2 中的双斜线没有错。只是您正在交互式控制台上查看字符串的
repr,它显示了您在输入字符串时需要重新创建字符串的转义。尝试执行print(escaped_string),您将看不到转义,因为print向您显示字符串的人性化版本,没有转义。
标签: python python-3.x file-io unicode