将目录中每个文件的路径获取到Python中的数组中
我想把“Data”文件夹里每个文件的路径放到一个数组 files[]
里。但是当我想进入子文件夹时,我希望它能一直深入到“Data”文件夹的最底层。比如说,我可以读取“Data”主文件夹下的一个子文件夹里的文件,我想把所有文件的路径列成一个数组,但它没有办法更深入,无法访问“Data”文件夹的子文件夹的子文件夹,而不需要写一个循环。我想要的是一个可以无限深入查看“Data”文件夹里文件的循环,这样我就能获取到所有的文件路径。
比如说,这就是我现在得到的结果:
['Data/DataReader.py', 'Data/DataReader - Copy.py', 'Data/Dat/DataReader.py', 'Data/fge/er.txt']
而我想要的是这样的结果,但它还可以进入更深的文件夹:
['Data/DataReader.py', 'Data/DataReader - Copy.py', 'Data/Dat/DataReader.py', 'Data/fge/er.txt', 'Data/fge/Folder/dummy.png', 'Data/fge/Folder/AnotherFolder/data.dat']
这是我现在的路径,我需要添加或更改什么呢?
import os
from os import walk
files = []
folders = []
for (dirname, dirpath, filename) in walk('Data'):
folders.extend(dirpath)
files.extend(filename)
break
filecount = 0
for i in files:
i = 'Data/' + i
files[filecount] = i
filecount += 1
foldercount = 0
for i in folders:
i = 'Data/' + i
folders[foldercount] = i
foldercount += 1
subfolders = []
subf_files = []
for i in folders:
for (dirname, dirpath, filename) in walk(i):
subfolders.extend(dirpath)
subf_files.extend(filename)
break
subf_files_count = 0
for a in subf_files:
a = i + '/'+a
files = files
files.append(a)
print files
subf_files = []
print files
print folders
非常感谢!
1 个回答
4
我不太明白你在做什么,特别是为什么你在处理第一个元素后就停止了你的walk
。
import os
files = []
folders = []
for (path, dirnames, filenames) in os.walk('Data'):
folders.extend(os.path.join(path, name) for name in dirnames)
files.extend(os.path.join(path, name) for name in filenames)
print files
print folders