提问者:小点点

Python在特殊情况下拆分多个文件中的文件


大家好!

我有一大堆档案:

1| something
2| something else
2| something else 2
2| something else 3
3| something else 4
3| something else 5
5| something else 6
...
28| something else 29

我需要的是把这一个文件分成28个不同的文件。 比如file1包含以1开头的所有内容,file2包含2,等等。

该文件约为400GB。 有没有一个表演的,简单的方法来做到这一点?

非常感谢!

编辑:

这就是我所做的而且花了很长时间

    for line in r_file:
        var.append(line)
    r_file.close()
    for i in range(1, 29):
        w_file = open('/file' + str(i) + '.txt', 'a', encoding='utf-8')
        for line in var:
            if line.startswith(str(i) + '|'):
                w_file.write(line)
        w_file.close()```

共1个答案

匿名用户

您可以创建29个文件,并使用Python将行复制到相应的文件中。
使用下面的代码自动创建文件。
请参阅备注以了解功能。

Python

file = [None]

# Open files in write mode
for i in range(1, 30):
    file.append(open("file"+str(i)+".txt", "w"))

# Copy required lines to other files
with open('original_file.txt', 'r') as orig:
    for line in orig:
        fno = int(line.split('|')[0])
        if (1<=fno<=28): file[fno].write(line)
        else: file[29].write(line)
        print(fno)

# Close files
for i in range(1, 30):
    file[i].close()

谢谢