Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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循环';s os.walk()混乱_Python_Loops_Python 2.7 - Fatal编程技术网

通过Python循环';s os.walk()混乱

通过Python循环';s os.walk()混乱,python,loops,python-2.7,Python,Loops,Python 2.7,我正在编写一个脚本,它将抓取硬盘并收集每个文件的信息 它通过比赛和魔术的方式相遇 我觉得yield\u文件(root)中的第一个嵌套for循环是不必要的 def yield_files(root): for root, dirs, files in os.walk(root): """ Is this necessary for directory in dirs: for filename in directory:

我正在编写一个脚本,它将抓取硬盘并收集每个文件的信息 它通过比赛和魔术的方式相遇

我觉得
yield\u文件(root)
中的第一个嵌套for循环是不必要的

def yield_files(root):

    for root, dirs, files in os.walk(root):
        """ Is this necessary 

        for directory in dirs:
            for filename in directory:
                filename = os.path.join(root, filename)
                if os.path.isfile(filename) or os.path.isdir(filename):
                    yield FileInfo(filename)
        """

        for filename in files:
            filename = os.path.join(root, filename)
            if os.path.isfile(filename) or os.path.isdir(filename):            
                yield FileInfo(filename)
os.walk()最终会递归到这些目录中吗

这就是你所需要的。其余的确实没有必要
os.walk
进入子目录,因此您不需要当前目录的路径,您只需要
root
作为路径连接的基础

def yield_files(root):
    for root, dirs, files in os.walk(root):
        for filename in files:
            filename = os.path.join(root, filename)
            if os.path.isfile(filename) or os.path.isdir(filename):            
                yield FileInfo(filename)