要获取目录中的所有文件,可以使用os.listdir。>>> import os
>>> basedir = 'tmp/example'
>>> names = os.listdir(basedir)
>>> names
['a', 'b', 'c']
然后需要在名称中添加basedir:>>> paths = [os.path.join(basedir, name) for name in names]
>>> paths
['tmp/example/a', 'tmp/example/b', 'tmp/example/c']
然后,可以使用os.stat(path).st_size(我创建的示例文件为空)将其转换为成对(名称、大小)的列表:>>> sizes = [(path, os.stat(path).st_size) for path in paths]
>>> sizes
[('tmp/example/a', 0), ('tmp/example/b', 0), ('tmp/example/c', 0)]
然后,可以使用collections.defaultdict将具有相同大小的路径分组在一起:>>> import collections
>>> grouped = collections.defaultdict(list)
>>> for path, size in sizes:
... grouped[size].append(path)
...
>>> grouped
defaultdict(, {0: ['tmp/example/a', 'tmp/example/b', 'tmp/example/c']})
现在您可以按大小获取所有文件,并将其全部打开(不要忘记在之后关闭它们!)以下内容:>>> open_files = [open(path) for path in grouped[0]]