with open('user_details.txt') as f:
for line in f:
if "bob" in line:
print(line.split()[2])
如果您想要 bob 所在行中的所有 nums 的列表,请使用列表推导:
with open('user_details.txt') as f:
nums = [line.split()[2] for line in f if "bob" in line]
在检查是否要避免名称是行中字符串的子字符串的情况之前,您可能还需要拆分,例如bob in bobbing
-> True:
nums = [line.split()[2] for line in f if "bob" in line.split()]
我认为一个更有用的结构将是一个字典,其中值是与每个名称相关联的一行中的所有第三个数字:
from collections import defaultdict
d = defaultdict(list)
with open("in.txt") as f:
for line in f:
if line.strip():
spl = line.rstrip().split()
d[spl[-1]].append(spl[2])
print(d)
defaultdict(<type 'list'>, {'bob': ['60'], 'dan': ['59']})