尝试对 Windows 文件路径使用反斜杠时出现 SyntaxError [英] SyntaxError when trying to use backslash for Windows file path
问题描述
我尝试使用以下代码行确认文件是否存在:
I tried to confirm if a file exists using the following line of code:
os.path.isfile()
但我注意到如果从 Windows 操作系统复制和粘贴使用反斜杠:
But I noticed if back slash is used by copy&paste from Windows OS:
os.path.isfile("C:\Users\xxx\Desktop\xxx")
我有一个语法错误:(unicode 错误)等等等等
I got a syntax error: (unicode error) etc etc etc.
当使用正斜杠时:
os.path.isfile("C:/Users/xxx/Desktop/xxx")
成功了.
请问为什么会这样?甚至答案也很简单:这是约定俗成的."
Can I please ask why this happened? Even the answer is as simple as :"It is a convention."
推荐答案
反斜杠是转义符.这应该有效:
Backslash is the escape symbol. This should work:
os.path.isfile("C:\\Users\\xxx\\Desktop\\xxx")
这是可行的,因为您对转义符进行转义,并且 Python 将其作为此文字传递:
This works because you escape the escape symbol, and Python passes it as this literal:
"C:\Users\xxx\Desktop\xxx"
但更好的做法是确保跨平台兼容性,像这样收集路径段(可能有条件,基于平台)并使用 os.path.join
But it's better practice and ensures cross-platform compatibility to collect your path segments (perhaps conditionally, based on the platform) like this and use os.path.join
path_segments = ['/', 'Users', 'xxx', 'Desktop', 'xxx']
os.path.isfile(os.path.join(*path_segments))
应该为您的案例返回 True
.
Should return True
for your case.
这篇关于尝试对 Windows 文件路径使用反斜杠时出现 SyntaxError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!