我有一堆文件夹,每个文件夹包含一组和相同数量的文件。我想使用python循环遍历每个文件夹并对每个文件进行一些分析。我想将分析结果存储在一个numpy数组中。
例如,假设我们有3个文件夹,每个文件夹包含5个文件。我希望分析结果存储在数组results=np.zeros((3,5))
这是一个接近我想要的代码片段,但不正确。
results=np.zeros((3,5))
dircount=0
filecount=0
for root, dirs, files in os.walk(ROOTFOLDER):
for dir in root:
for file in dirs:
result[dircount,filecount]=#do some analysis with file
filecount=filecount+1
dircount=dircount+1
filecount=0
print result
我必须承认,我并不完全了解os.walk是如何工作的,但对于涉及循环文件和文件夹的工作来说似乎很好。
答案 0 :(得分:1)
os.walk()
完成了您手动尝试的大部分内容:
results=np.zeros((3,5))
dircount=0
for root, dirs, files in os.walk(ROOTFOLDER):
filecount = 0
for f in files:
# absolute filename is os.path.join(root, f)
result[dircount,filecount] = #do some analysis with file
filecount += 1
dircount += 1
print result
主循环将递归地向下遍历dirs
中的所有文件夹,从而获得该文件夹树中的所有文件。
答案 1 :(得分:1)
您可以在此使用os.walk
results=np.zeros((3,5))
dircount=0
for root, dirs, files in os.walk(ROOTFOLDER):
filecount = 0
for f in files:
# absolute path is os.path.join(root,f)
result[dircount,filecount]
filecount += 1
dircount += 1
打印结果
如果您需要以递归方式在文件夹中填写完整的files_list
files_list = [os.path.join(folder,i) for folder, subdirs, files in os.walk(ROOTFOLDER) for i in files]