我想完全扫描目录中的子目录(目录或文件)......
我知道os.walk()
解决方案,但我想知道如何使用常规循环实现这一点,是否可能?
我的意思是:
for item in directory :
if os.path.isdir(item)
...
但是上面的代码只是深入到目录中,就像你手动编写的for循环一样多,这似乎是不完美和奇怪的。
我问这个问题,知道是否有任何技巧(除了内置函数)递归到目录的最深层文件...
答案 0 :(得分:0)
当然,您可以编写一个递归函数来检查所有文件:
def rec_walk(dir):
contents = os.listdir(dir) # read the contents of dir
for item in contents: # loop over those contents
if os.path.isdir(item):
rec_walk(item) # recurse on subdirectories
else:
print(item) # do something else with non-directory items
如果您从非目录文件中收集信息(而不是像上面那样只打印它们的名称),您可能需要对递归调用的返回值执行某些操作。细节将取决于你究竟在做什么。