我需要逐个遍历目录中的文件夹,并对这些文件夹中的文件作为一个组执行一个函数。需要将这些文件连同它们各自的文件夹名称一起传递到函数中。有时,目录只包含一个文件,但很多时候它们包含两个或更多。此外,一些文件夹包含更多的文件夹,我需要提取文件路径作为一个组。
例如,我的文件结构可以是这样的:
├── root_folder
│ ├── subdir1
│ │ ├── file1.txt
│ │ ├── file2.txt
│ ├── subdir2
│ │ ├── file3.txt
│ ├── subdir3
│ │ ├── file4.txt
│ │ ├── file5.txt
│ │ ├── file6.txt
│ ├── subdir4
│ | ├── subdir42
│ │ | ├── file7.txt
│ │ ├── subdir43
│ │ | ├── file8.txt
│ │ | ├── file9.txt
我想从每个目录中获取所有文件,并将目录名传递到函数中。以下是预期结果:
myfunc("file1.txt","file2.txt",subdir1)
myfunc("file3.txt",subdir2)
myfunc("file4.txt","file5.txt","file6.txt",subdir3)
myfunc("file7.txt",subdir42)
myfunc("file8.txt","file9.txt",subdir43)
简单地说,我需要递归地一个接一个地遍历每个文件夹,并使用该文件夹中的所有文件传递给一个函数。
我目前的代码只返回每个文件的所有文件路径,但就像我说的,我需要在组中使用它们(每个文件夹包含一组文件)。
indir = "C:/path/to/indir"
for path, directories, files in os.walk(indir):
for file in files:
fpath = os.path.join(path, file)
print(fpath)
我对这件事束手无策。任何建议将不胜感激!
1条答案
按热度按时间7y4bm7vi1#
我认为你可以创建某种递归函数,你可以用它来遍历目录,然后返回一个列表中的非目录文件列表,你可以用它来传递给一个函数
编辑:根据你的更新预期函数调用,我认为我上面建议的类似方法应该工作,但不是返回子目录中的所有文件,它只是获取同一目录中的所有非目录文件,并作为函数调用的参数传递
运行上面的示例数据结构应该会给予以下输出