我需要通过所有子文件夹从我的父路径 (tutu) os.walk。对于每一个,每个最深的子文件夹都有我需要用我的代码处理的文件。对于所有包含文件的最深文件夹,文件“布局”是相同的:一个文件 *.adf.txt、一个文件 *.idf.txt、一个文件 *.sdrf.txt 和一个或多个文件 *.dat。 ,如图所示。 我的问题是我不知道如何使用 os 模块从我的父文件夹依次迭代到所有子文件夹。我需要一个函数,对于 os.walk 中的当前子文件夹,如果该子文件夹为空,则继续到该子文件夹内的子子文件夹(如果存在)。如果存在,则验证该文件布局是否存在(这没问题...),如果存在,则应用代码(也没有问题)。如果没有,并且该文件夹没有更多子文件夹,请返回父文件夹并 os.walk 到下一个子文件夹,并将所有子文件夹都放入我的父文件夹 (tutu)。要恢复,我需要一些类似下面的函数(用 python/虚构代码混合编写):
for all folders in tutu:
if os.havefiles in os.walk(current_path):#the 'havefiles' don´t exist, i think...
for filename in os.walk(current_path):
if 'adf' in filename:
etc...
#my code
elif:
while true:
go deep
else:
os.chdir(parent_folder)
您认为这是调用我的代码来完成这项工作的最佳定义吗?
这是我尝试使用的代码,当然没有成功:
import csv
import os
import fnmatch
abs_path=os.path.abspath('.')
for dirname, subdirs, filenames in os.walk('.'):
# print path to all subdirectories first.
for subdirname in subdirs:
print os.path.join(dirname, subdirname), 'os.path.join(dirname, subdirname)'
current_path= os.path.join(dirname, subdirname)
os.chdir(current_path)
for filename in os.walk(current_path):
print filename, 'f in os.walk'
if os.path.isdir(filename)==True:
break
elif os.path.isfile(filename)==True:
print filename, 'file'
#code here
提前致谢...