所以,我可能会以错误的方式解决这个问题,如果是这样的话,我会在寻找解决问题方面采取不同的方式,但这是我想要做的,以及我是怎么做的它
我正在制作一个简单的地址簿,基于我找到的一些初学者项目建议,我正在慢慢实现它,但我无法弄清楚如何让它来搜索文件的某个部分。我想要它打印姓名,地址,电话和手机。所有这些都在一条单独的线上,总共4行。
我正在使用以下代码来完成此任务:
def search_entries():
found = 0
search = raw_input("Please enter the person's name: ")
for line in open('addbook.txt', 'r').readlines():
if search in line:
found = 1
if found >= 1:
print line
if found == 4: break
然而,打印文件的其余部分不是打印只打印人名的4行。任何帮助表示赞赏,谢谢。
答案 0 :(得分:0)
found
在设置为1后永远不会更改。
答案 1 :(得分:0)
意识到我忘记在代码中添加一个计数器:
def search_entries():
found = 0
search = raw_input("Please enter the person's name: ")
for line in open('addbook.txt', 'r').readlines():
if search in line:
found = 1
if found >= 1:
print line
found = found + 1
if found == 4: break
答案 2 :(得分:0)
有一种更好的写作方式(未经测试):
from itertools import islice
with open('input.txt') as fin:
for line in fin:
if 'bob' in line:
next_3 = list(islice(fin, 3))
print line, next_3
break