循环跳过python中的函数?

时间:2017-04-21 17:36:47

标签: python python-2.7 while-loop

我在这里寻找了几个小时的解决方案,但我找不到一个。也许有人可以帮助我或指出类似的问题?

我在while循环中有一个函数。该函数迭代文本文件中的每一行:

def parser():
    for line in f:
        print(line)

f = open('textfile.txt', 'r')

count = 0
while count < 7:
    parser()
    count += 1
    print(count)

我的输出如下:

text file line 1
text file line 2
text file line 3

1
2
3
4
5
6

我最初的目标是在每个+1之后再次调用该函数:

text file line 1
text file line 2
text file line 3
1
text file line 1
text file line 2
text file line 3
2
text file line 1
text file line 2
text file line 3
3

......等等。

道歉,如果这实际上是重复的并提前感谢!

1 个答案:

答案 0 :(得分:1)

对于你使用你需要重新打开你的while循环中的文件(addidionally我传递了filehander f作为parser函数的参数):

def parser(f):
    for line in f:
        print(line.strip())  # stripping off '\n'

count = 0
while count < 7:
    with open('../var/textfile.txt', 'r') as f:
        parser(f)
    count += 1
    print(count)

或者你也可以f.seek(0)打开原始文件:

f = open('../var/textfile.txt', 'r')

count = 0
while count < 7:
    f.seek(0)
    parser(f)
    count += 1
    print(count)