通过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)