我有像这样的制表符分隔文件
tag1 DATA
tag20 DATA
tag4 DATA
tag3数据
tag10 DATA
此数据大约有250000行。我想按标签将这些行排序到文件中。以tag1开头的行进入tag1.txt。行以tag2 goto tag2.txt等开始
有没有聪明的方法来循环?
答案 0 :(得分:2)
import collections
file_data = collections.defaultdict(list)
with open("you_file") as f
for line in file:
tag, data = line.split('\t', 1)
file_data[tag].append(data)
for file_name, data in file_data.items():
with open(file_name, 'w') as f:
f.write("\n".join(data))
答案 1 :(得分:1)
对于包含200000行的输入文件,这需要5秒钟。
with open("input.txt") as f:
for line in f:
tag_fname, tag_data = line.split(' ',1)
with open(tag_fname, 'a') as g:
g.write(tag_data)