我是一名 Python 初學者,正在一個較小的單獨文件中對我的一個更大的項目進行故障排除。我更大的項目的問題是我無法讓兩個 for 循環連續工作。我有一個包含兩行的 txt 文件代碼很簡單:file=open("test.txt","r")for line in file: print("x") passprint("hi") for line in file: print("x")兩個 for 循環是相同的 bar pass。print("hi")存在作為檢查第一個 for 循環是否被打破的一種手段(它是)此代碼輸出:xxxhi第一個 for 循環被打破, print 語句在它之后工作,但之后的 for 循環沒有?我本來希望它輸出:xxxhixxx我怎樣才能解決這個問題?
1 回答

忽然笑
TA貢獻1806條經驗 獲得超5個贊
問題是,在您的第一個循環中,您將EOF在循環結束時到達 (end-of-file),因此任何后續循環都不會讀取任何內容,您可以使用它readlines來獲取可以循環的行列表隨心所欲:
with open("test.txt", "r") as f: # use `with` to automatically close the file after reading
lines = f.readlines()
for line in lines:
print("x")
#pass `unnecessary`
print("hi")
for line in lines:
print("x")
或者(對于大文件),您可以使用seek讓閱讀器回到文件的開頭:
file = open("test.txt", "r")
for line in file:
print("x")
print("hi")
file.seek(0)
for line in file:
print("x")
file.close()
添加回答
舉報
0/150
提交
取消