2017-04-21 148 views
0

我在這裏找了幾個小時尋找解決方案,但找不到一個解決方案。也許有人可以幫助我或指出類似的問題?while循環跳過python中的函數?

我有一個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

爲你的用例,你需要重新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) 
+0

那麼快感謝您的幫助! – Sils10