0

私はプロジェクトに取り組んでいて、問題を抱えています。私は初心者プログラマーであることを覚えておいてください。

私がやりたいのは、テキスト ファイルにある情報を 2 点間で出力することです。

私のコード:

AccountName=input("What Is The Name Of The Account Holder?")

Accounts=open("Accounts.txt", "r")
lines = Accounts.readlines()
Accounts.close

for i, line in enumerate(lines):
    if AccountName in line:
        print(line)

テキストファイル:

Alex Peters Aken South Carolina Citizens Bank 865074 $25,000 09/25/2013 12401 (845)545-5555 Joe Small Albany New York Key Bank 763081 $4,800 10/15/2013 24503 (845)734-5555 「Joe Small」から (845)734-5555 に印刷したいとします。

(この情報のどれも本物ではありません)

4

3 に答える 3

1

問題の行を知っていて、使用し.readlinesたことがある場合は、必要なサブリストを次のように見つけることができます。

sublines = lines[lines.index('Joe Small'):lines.index('(845)734-5555')+1]

次に、そのリストの各行を印刷できます。

ただし、リストに複数の一意の行がある場合、このアプローチは機能しないことに注意してください。

私は次のようなアプローチをとります:

startLine = 'Joe Small'
endLine = '(845)734-5555'

shouldPrint = False

for line in f:
    line = line.strip()
    if shouldPrint:
        print line

    if line == startLine:
        shouldPrint = True
    elif line == endLine:
        shouldPrint = False
于 2013-04-15T00:24:46.140 に答える
0

forループを次のように変更できます(Python3の場合)

line_index = 0
while line_index < len(lines):
    if AccountName in lines[line_index]:
        for line in lines[line_index:line_index+9]:
            print(line, end="")
        line_index += 9
    else:
        line_index += 1

Python 2.X では、出力文は次のようになります。

print line,
于 2013-04-15T00:24:34.387 に答える
0

私は個人的にsapiのソリューションが好きですが、

Accounts=open("file.txt", "r")
lines = Accounts.readlines()
lines = [line.strip() for line in lines]
Accounts.close()

accounts = zip(*[iter(lines)]*9)

for account in accounts:
    if "Joe Small" in account:
        print account
于 2013-04-15T00:27:33.833 に答える