在Python中递归扫描文件和目录
我想完全扫描一个目录,查找它的子目录或文件 我知道os.walk解决方案,但我想知道如何使用常规循环实现这一点,是否可能 我的意思是如果:在Python中递归扫描文件和目录,python,Python,我想完全扫描一个目录,查找它的子目录或文件 我知道os.walk解决方案,但我想知道如何使用常规循环实现这一点,是否可能 我的意思是如果: for item in directory : if os.path.isdir(item) ... 但是上面的代码只是深入到目录中,就像您手动编写的for循环的级别一样多,这似乎是不完美和奇怪的 我问这个问题是想知道除了内置函数之外,是否还有其他技巧可以递归到目录最深的文件中…当然,您可以编写一个递归函数来检查所有文件: def rec_
for item in directory :
if os.path.isdir(item)
...
但是上面的代码只是深入到目录中,就像您手动编写的for循环的级别一样多,这似乎是不完美和奇怪的
我问这个问题是想知道除了内置函数之外,是否还有其他技巧可以递归到目录最深的文件中…当然,您可以编写一个递归函数来检查所有文件:
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
如果您正在从非目录文件收集信息,而不是像我在上面所做的那样仅仅打印它们的名称,那么您可能需要对递归调用的返回值进行处理。详细信息将取决于您的具体操作。您需要递归搜索目录,请参见。他们有例子。另外,一个搜索os.walk的例子将为您提供一系列代码来开始。我只看到函数的自调用在这里起作用,谢谢