我试图在名称为-
,即/0.12345/Name-001-011
的目录中查找文件。部分代码就是这样
mypath = '.'
pattern = '\d\.\d*/Name*/NameofFile'
fileList = []
for directory, dirnames, filenames in os.walk(mypath):
for name in filenames:
if re.search(pattern,os.path.join(directory,name)):
fileList.append(os.path.join(directory,name))
但不幸的是,它找不到文件,并且我意识到问题出在路径中-
。
答案 0 :(得分:1)
问题是Name
之后的正则表达式模式中缺少点。正确的模式如下:
/\d\.\d*/Name.*/NameofFile
正如注释中指出的那样,通过编写Name*
,您告诉引擎匹配字符e
的0个或多个重复。相反,您想要的是匹配Name
之后的所有内容,这由.*
实现,其中点代表除换行符之外的任何字符。
答案 1 :(得分:1)