【发布时间】:2009-10-22 15:37:11
【问题描述】:
我不确定我是否正确理解 os.walk 如何存储其结果。
我正在尝试执行以下操作:
我正在为后续文件夹检查根文件夹。有数百个 em,它们以某种统一的方式嵌套。
我正在尝试检查每个子文件夹,如果它以四位数字结尾,请将其存储在一个列表中。
我使用了高度程序化的代码,并且得到了它,但代码使用的是 os.listdir,这意味着我需要为我想要的每个文件夹执行该函数。
有没有更好的办法?
def ListadorPastas(pasta):
resultado = []
regex = "^[0-9]{4}"
padrao = re.compile(regex)
for p in os.listdir(pasta):
regexObject = re.match(padrao,p[-4:])
if (regexObject!=None):
resultado.append(regexObject.string)
else:
pass
return resultado
另外,我有一个正则表达式问题:这个正则表达式匹配表达式的最后四个切片数字。有时我最后有 5 位数字的文件夹,这也将匹配。我尝试使用 "$[0-9]{4}" 但它什么也没给我。任何想法为什么?
提前致谢。
乔治
【问题讨论】:
-
每个问题只提出一个问题,而不是两个完全不相关的问题(在 os.walk 和 regex 上)恰好涉及您的同一段代码,这真的会更有礼貌,使对于试图回答的人和将来寻找答案的读者来说,生活会更轻松(每个问题都可以正确命名和标记,从而进行搜索等)。
-
我需要检查无数个文件夹,并测试它们最后是否有四位数。如果是这样,请将它们添加到列表中。我遇到了麻烦,因为我的功能需要在许多文件夹中重复。我在想一些更通用和自动化的东西。