大家好!
我有一大堆档案:
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()```
您可以创建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()
谢谢