如何用for循环打开大量文件?

时间:2011-01-15 09:23:16

标签: python file

我有像这样的制表符分隔文件

  

tag1 DATA
  tag20 DATA
  tag4 DATA
  tag3数据
  tag10 DATA

此数据大约有250000行。我想按标签将这些行排序到文件中。以tag1开头的行进入tag1.txt。行以tag2 goto tag2.txt等开始

有没有聪明的方法来循环?

2 个答案:

答案 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)