打印出文件的某个部分

时间:2012-11-25 12:28:35

标签: python python-2.7

所以,我可能会以错误的方式解决这个问题,如果是这样的话,我会在寻找解决问题方面采取不同的方式,但这是我想要做的,以及我是怎么做的它

我正在制作一个简单的地址簿,基于我找到的一些初学者项目建议,我正在慢慢实现它,但我无法弄清楚如何让它来搜索文件的某个部分。我想要它打印姓名,地址,电话和手机。所有这些都在一条单独的线上,总共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行。任何帮助表示赞赏,谢谢。

3 个答案:

答案 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