我正在讀取外部txt文件並顯示所有以字段6爲Y的行。然後我需要對這些行進行計數。但是,當我添加sum函數時,它只會打印1行,如果我刪除了這個sum函數,所有行都按預期顯示。我假設它與for循環有關,但似乎無法弄清楚如何讓所有行顯示並保留我的總和。任何人都可以幫助我發現哪裏出錯?當添加求和函數時,循環不顯示所有行
noLines = 0
fileOpen = open ("file.txt","r")
print ("Name: " + "\tDate: " + "\tAge: " + "\tColour: " + "\tPet")
for line in fileOpen:
line = line[:-1]
field = line.split(',')
if field[6] == "Y":
print()
print (field[0] +"\t\t" + field[1] + "\t" + field[2] + "\t\t" + field[3] + "\t\t" + field[4])
noLines = sum(1 for line in fileOpen)
print()
print(noLines)
你肯定有之前或「Y」後沒有空格?我建議剝離它們以防萬一:'if field [6] .strip()==「Y」:...'你也在每次循環迭代中重置行數。這可能不是你想要的。 – DyZ
@Sarah:你不應該改變現有答案無效的方式。請不要編輯代碼,因爲這些問題也可以作爲未來用戶(而不僅僅是你)的參考。請評論我的回答問題,我會盡力幫助您解決問題(根據我的最佳知識) –
您應該編輯代碼以使您的問題清晰明瞭。但改變問題的背景是SO的編輯功能的利用 –