我有一个关于遍历目录树并返回所有包含“test”一词的目录的问题。我的问题是当我使用这段代码运行时,
for root,dirnames,filenames in os.walk("Path/to/my/files"):
for dirname in fnmatch.filter(dirnames, "test"):
for filename in fnmatch.filter(filenames, "*.ext"):
file.write(os.path.join(root,filename)+ "\n")
我得到每个包含“测试”的目录。所以一些目录可能被命名为“systest”或“testplan”或“tester”。我不想要那些目录。我知道我应该使用正则表达式或类似的东西,但我似乎无法全神贯注。谢谢您的帮助。
更新:
我想出了另一种使用正则表达式的方法,但由于 Windows 中的文件分隔符,它有点不稳定
testPattern = re.compile(".*\\\\test\\\.*\.java")
for root,dirnames,filenames in os.walk(rootPath):
for file in filenames:
path = root+"\\"+file
m = testPattern.match(path)
谢谢!