gpt4 book ai didi

python - 为什么将 Windows 路径放入变量中不会用双斜杠替换特定的单斜杠?

转载 作者:太空宇宙 更新时间:2023-11-04 08:26:47 25 4
gpt4 key购买 nike

当我在 Python shell 中执行以下操作时,为什么第二个斜杠没有被双斜杠替换?:

>>> p = 'M:\django\newenv\django_projects\mediaproject\mediaproject\media'
>>> p
'M:\\django\newenv\\django_projects\\mediaproject\\mediaproject\\media'

我认为这是导致我在尝试 os.listdir(p) 时遇到的错误:

FileNotFoundError: [WinError 3] The system cannot find the path specified: 'M:\\django\newenv\\django_projects\\mediaproject\\mediaproject\\media'

或者是否有其他错误原因?该目录肯定存在,并且是从 Windows 文件资源管理器复制粘贴的。

编辑:

我认为这是因为第二个斜杠在 n 字符之前,所以它被视为换行符。但是我该如何解决这个问题(在现实世界中我不会手动输入路径)?

最佳答案

尝试

 p = r'M:\django\newenv\django_projects\mediaproject\mediaproject\media'

os.listdir(p)

在字符串前添加 r 可防止在字符串内部进行转义序列解释。因此,该字符串仅被解释为原始字符串。

原始字符串和普通字符串之间的区别在于它们如何处理转义序列。原始字符串总是将 \n 视为两个单独的字符,一个 \ 后跟一个 n。另一方面,普通字符串会将 \n 视为单个字符。

EX.

raw_string = r"\n"
string = "\n"

print(len(raw_string))
print(len(string))

输出

2
1

关于python - 为什么将 Windows 路径放入变量中不会用双斜杠替换特定的单斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56292457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com