打印某个部分的文件

2024-04-20 14:59:39 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我可能是走错了路,如果是这样,我会很感激用不同的方式来解决问题,但这里是我要做的,以及我是如何尝试去做的。你知道吗

我正在根据我找到的一些初学者项目建议制作一个简单的地址簿,我正在慢慢地实现它,但是我不知道如何让它搜索文件的某个部分。我要打印姓名,地址,电话和手机。所有这些都在一条单独的线上,总共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行,而是打印文件的其余部分。谢谢您的帮助。你知道吗


Tags: 文件项目insearchif地址方式line
3条回答

有一种稍微好一点的写作方法(未经测试):

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

意识到我忘了在代码中添加计数器:

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

found在设置为1之后,不会更改。你知道吗

相关问题 更多 >