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

2024-07-03 06:26:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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

tag1 DATA
tag20 DATA
tag4 DATA
tag3 DATA
tag10 DATA

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

有没有什么聪明的方法可以用loop来实现呢?在


Tags: 文件数据方法标记txtdata排序制表符
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))

对于一个有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)

相关问题 更多 >