我想要執行一個任務,其中程序要經過一個目錄,輪流打開每個文件,並在任何其他事項之前檢查特定行。如果該行符合特定條件(即,它不匹配目錄中任何其他文件中的此行),則文件關閉,程序將移至下一個文件。Python - 如果文件滿足條件,則關閉文件
aps = []
import os
for filename in os.listdir("C:\..."):
f = open(filename,"r")
(f.readline())
(f.readline())
ap = (f.readline())
ap = ap.rstrip("\n")
aps.append(ap)
freqs = {}
for ap in aps:
freqs[ap] = freqs.get(ap, 0) + 1
for k, v in freqs.items():
if v == 2:
f.close()
else:
對於「別人:」我最初試圖「f.seek(0)」,但得到的Python的錯誤無法與一個封閉的文件工作。然後我再次嘗試'f = open(filename,「r」)',但是這樣做有點奇怪,因爲當我試圖通過這種方法打印第一行時,它會在瘋狂的循環中發送它並多次打印該行。
這是完成此任務的最佳方式嗎?如果不是,我怎麼才能使它工作?
非常感謝。
'f.close'後面'else'分支的用途是什麼?你還需要從文件中讀取嗎? – sal
您應該在關閉文件後添加一個「break」,以便它不會循環。 –