Python reset line in for loop

2019-09-15 09:50发布

I'm trying to repeatedly go through a text file of a few lines. When my for loop is done with one pass through the file, I want to repeat the file from the beginning. Is there any way to reset the line counter to make this happen?

infile=open("some_txt.txt","r")

choice=input("Choice:")
g=0

while choice!="close":
    if choice=='1':

        take_off=input("Take off:")
        for line in infile:
            x=line.split()
            if x[1]==take_off:
                print(x)
                g=g+1

        if g==0:
            print("No match.")

    elif choice=='2':

        take_off=input("Take off 2:")
        for line in infile:
            x=line.split()
            if x[2]==take_off:
                print(x)
                g=g+1

        if g==0:
            print("No match.")

    choice=input("Choice")

2条回答
一夜七次
2楼-- · 2019-09-15 10:37

I gather that you want to go back to the start of the file and read it all again. The simplest way is

infile.seek(0)

A slower and somewhat more involved way is to close the file and reopen it.

查看更多
ゆ 、 Hurt°
3楼-- · 2019-09-15 10:42

When you read the file, a pointer is set to the end of the file. To go back to the beginning of the file you reset the pointer by doing "infile.seek(0)" If you want to go to the end of the file you pass 2 as the argument.

查看更多
登录 后发表回答