“在python 3中将\替换为\\”

2024-10-02 14:23:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个小脚本来列出某个扩展名目录中的所有文件。用户将在此处输入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))

我试过了

^{pr2}$

我得到了这样一个错误 目录.replace('\', '\') ^ SyntaxError:行续字符后出现意外字符 我正在尝试将windows目录路径自动转换为python3可读路径,但遇到了麻烦。:( 更新: 后续工作

DIRECTORY = r"D:\Movies"

但如果道路是这样的话,情况就不一样了

DIRECTORY = r"D:\"

Tags: inimport路径目录foroswindowsmovies
3条回答

首先使用原始字符串,您不需要替换(您认为需要的额外斜杠会显示为repr以显示反斜杠是转义的,它实际上不是字符串的一部分)。在

例如,r'D:\Movies不存在反斜杠被误解的风险(如果您显示repr,它看起来会有两个斜杠,但是通过使用只有一个斜杠的原始字符串可以更容易地键入内容)。在

对于用户的任何input,它不是一个字符串文本,所以反斜杠转义不会首先被处理,它们已经是正确的了。在

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

您需要转义特殊字符:

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

相关问题 更多 >