如何在两点之间打印文本文件中的信息?

时间:2013-04-15 00:20:05

标签: python

我正在开展一个项目并遇到麻烦。 请记住,我是一名初学程序员。

我想要做的是在两点之间打印文本文件中的信息。

我的代码:

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 我该怎么做?

(这些信息都不是真实的)

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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,

答案 2 :(得分: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