with open('user_details.txt') as f:
for line in f:
if "bob" in line:
print(line.split()[2])
如果希望所有NUMS其中鮑勃是在該行的列表中使用列表理解:
with open('user_details.txt') as f:
nums = [line.split()[2] for line in f if "bob" in line]
你也可能需要分割你檢查之前,如果你想避免的情況下名稱是行的串子串,例如bob in bobbing
- >真:
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']})
做你想要的名稱和數量,或只是多少? – 2014-11-04 14:35:22
只是號碼 – mickelodeon612 2014-11-04 14:36:24
@ mickelodeon612這個'foo12bar12foobar60 bob'的預期輸出是什麼? – 2014-11-04 14:43:13