"replace \ with \ in python 3"

"replace \ with \\ in python 3"

我正在尝试创建一个小脚本来列出某个扩展目录中的所有文件。用户将在此处输入 windows.

上目录的路径
import os    
import fnmatch
DIRECTORY = "D:\Movies" 
EXTN = "*.mp4"  
for dirname, dirnames, filenames in os.walk(DIRECTORY):
# print path to all filenames.
    for filename in filenames:
        if fnmatch.fnmatch(filename, EXTN):
            print(os.path.join(dirname, filename))

我试过了

DIRECTORY.replace('\', '\')
print(DIRECTORY)

我收到这样的错误 DIRECTORY.replace('\', '\') ^ SyntaxError:行继续字符后出现意外字符 我正在尝试将 windows 目录路径自动转换为 python 3 可读路径,但我碰壁了。 :( 更新: 以下作品

DIRECTORY = r"D:\Movies"

但如果路径是这样的话,同样不会

DIRECTORY = r"D:\"

您需要转义特殊字符:

 DIRECTORY.replace('\', '\\')

字符\ 用于转义在字符串之外具有重要意义的事物。这里发生的事情是反斜杠转义了第一个引号,这意味着最后一个引号没有引号结束。要解决此问题,请执行以下操作转义所有反斜杠:DIRECTORY.replace('\', '\\')

首先使用原始字符串,你不需要替换(你认为你需要的额外斜线显示为 repr 以表明反斜线被转义,它实际上不是字符串).

例如 r'D:\Movies 没有反斜杠被误解的风险(如果你显示 repr,它看起来有两个斜杠,但使用 raw 更容易输入只有一个字符串)。

对于用户 input 的任何内容,它都不是字符串文字,因此首先不处理反斜杠转义,它们已经是正确的。