Windows文件路径中的反斜杠是什么意思?

4

在Python中为Windows设置字符串到文件路径时,它需要格式化为:

C:\\Users\\

或者转义符在Windows上不适用?我的脚本目前在import os这行会显示“非ASCII字符”,所以我无法进行测试。


你可以只使用正斜杠代替。 - John La Rooy
3个回答

5
尝试在下面添加一个“r”:

尝试添加“r”,操作如下:

path = r"C:\mypaht\morepaht\myfie.file"

这段程序我认为可以这样写:f = open("C:\a\a.txt") 但会出现以下错误: Traceback (most recent call last): File "<string>", line 1, in <fragment> IOError: [Errno 22] invalid mode ('r') or filename: 'C:\x07\x07.txt' 正确的写法应该是:f = open(r"C:\a\a.txt") - Netwave
3
@DanielSanchez,原始字符串不能以 '' 结尾。 - John La Rooy
@gnibbler但是如果我想要一个子目录,我可以这样做newpath = r"%s\something"(假设myfile是一个目录) - tkbx

3

简短回答:像gnibbler建议的那样使用正斜杠。

关于使用原始字符串:

通常使用原始字符串没有问题,但是你需要注意r"\""会转义引号字符。也就是说,原始字符串并不是绝对的原始,这也是为什么你不能在字符串末尾使用反斜杠(或任何奇数个反斜杠),例如'\'(反斜杠将转义后面的引号字符)。

In [9]: a=r'\\'

In [10]: b=r'\\\'
  File "<ipython-input-10-9f86439e68a3>", line 1
    b=r'\\\'
             ^
SyntaxError: EOL while scanning string literal


In [11]: a
Out[11]: '\\\\'

3

不应该这样构建文件路径,它不具备可移植性且容易出错。

使用 os.path 中的 join() 函数。

import os.path
path = os.path.join('C:', 'Users', 'name')

这会自动在 Windows 上使用反斜杠,而在其他所有操作系统上使用斜杠吗? - tkbx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接