Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中递归扫描文件和目录_Python - Fatal编程技术网

在Python中递归扫描文件和目录

在Python中递归扫描文件和目录,python,Python,我想完全扫描一个目录,查找它的子目录或文件 我知道os.walk解决方案,但我想知道如何使用常规循环实现这一点,是否可能 我的意思是如果: for item in directory : if os.path.isdir(item) ... 但是上面的代码只是深入到目录中,就像您手动编写的for循环的级别一样多,这似乎是不完美和奇怪的 我问这个问题是想知道除了内置函数之外,是否还有其他技巧可以递归到目录最深的文件中…当然,您可以编写一个递归函数来检查所有文件: def rec_

我想完全扫描一个目录,查找它的子目录或文件

我知道os.walk解决方案,但我想知道如何使用常规循环实现这一点,是否可能

我的意思是如果:

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的例子将为您提供一系列代码来开始。我只看到函数的自调用在这里起作用,谢谢