在python中,如何根据特定值将文件解析为列表?

use*_*145 1 python parsing file list

我有一个大的制表符分隔文本文件,例如,将其命名为john_file:

1 john1 23 54 54
2 john2 34 45 66
3 john3 35 43 54
4 john2 34 54 78

5 john1 12 34 65
6 john3 34 55 66

什么是基于名称(john1,2或3)将此文件解析为3个列表的快速方法?

fh=open('john_file.txt','r').readlines()
john1_list=[]
for i in fh:
 if i.split('\t')[1] == "john1":
  john1_list.append(i)
Run Code Online (Sandbox Code Playgroud)

提前致谢

mhy*_*itz 6

from collections import defaultdict

d = defaultdict(list)

with open('john_file.txt') as f:
    for line in f:
        fields = line.split('\t')
        d[fields[1]].append(line)
Run Code Online (Sandbox Code Playgroud)

各列表然后在d['john1'],d['john2']