我找到了很多方法来列出多个目录中的每个文件,如下所示:
root = "C:\\test\\"
for path, subdirs, files in os.walk(root):
for name in files:
print(os.path.join(path, name))
但是,我需要在每个目录中只列出一个文件。我不是在寻找任何特定的订单,但我也不需要随机性。有没有办法在每个目录中获取单个文件(最好是“第一个”)以节省列出每个文件所需的资源? (这是一个Windows文件系统,如果相关的话。)
答案 0 :(得分:1)
请尝试以下代码:
import os
root = "C:\\test\\"
for path, subdirs, files in os.walk(root):
if files:
print(os.path.join(path, min(files)))
<强>更新强>
排除初始目录:
import os
import itertools
root = "C:\\test\\"
for path, subdirs, files in itertools.islice(os.walk(root), 1, None):
if files:
print(os.path.join(path, min(files)))
使用min
获取第一个(按字母顺序排列)文件名。