0

したがって、私はこれを間違った方法で行っている可能性があります。もしそうなら、問題を解決する別の方法をいただければ幸いです。

私が見つけたいくつかの初心者プロジェクトの提案に基づいて簡単なアドレス帳を作成しており、ゆっくりと実装していますが、ファイルの特定のセクションを検索する方法がわかりません。名前、住所、電話、携帯を印刷したい。これらはすべて別の行にあり、合計 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 行だけを印刷する代わりに、残りのファイルを印刷します。どんな助けでも大歓迎です、ありがとう。

4

3 に答える 3

0

found1 に設定された後は変化しません。

于 2012-11-25T12:32:37.350 に答える
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
于 2012-11-25T12:32:38.847 に答える
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
于 2012-11-25T12:35:51.410 に答える