我正在编写一个脚本,该脚本将爬网硬盘并通过fnmatch和magic收集它遇到的每个文件的信息。
我觉得yield_files(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()最终会递归到这些目录中
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)
这就是您所需要的。其余的确实是不必要的。os.walk
进入子目录,因此您不需要当前目录的路径,只需要root
作为路径连接的基础即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句