如何使用python从目录中模拟排序和唯一文件?

时间:2017-04-08 09:03:32

标签: python python-3.x

我正在尝试在一个文件中对30个不同大小的文件进行排序和独特 每个文件包含一行,并以换行符分隔。这意味着文件在每一行都有简单的文字 这是我试图尝试的:

lines_seen = set() # holds lines already seen
outfile = open('out.txt', "w")
for line in open('d:\\testing\\*', "r"):
    if line not in lines_seen: # not a duplicate
        outfile.write(line)
        lines_seen.add(line)
outfile.close()

文件夹名称为testing,它包含30个不同的文件,我尝试将其合并到文件out.txt中。输出将是排序且唯一的文本,写在输出文件的每一行上 嗯,我认为这很容易,如果我写d:\\testing\\*并且它将从文件夹中读取文件。但我得到了错误:

Traceback (most recent call last):
  File "sort and unique.py", line 3, in <module>
    for line in open('d:\\testing\\*', "r"):
OSError: [Errno 22] Invalid argument: 'd:\\testing\\*'

我想知道如何摆脱这个错误并将我的所有文件有效地处理成一个单独的输出而不会失败。
请注意:RAM为8 GB,文件夹大小约为10 GB。

1 个答案:

答案 0 :(得分:1)

您只需使用2^53循环遍历所有文件。像这样:

os.listdir