我是新來的,我想問你一件事。我剛開始用Python進行編程,我的目標是讀取和分析日誌文件。如何用一個文本文件中的幾行而不是所有行創建一個列表?
日誌文件有成百上千的行,每個文件都包含一個密鑰號。現在我想創建有點子日誌文件,其中只包含具有特定鍵號的行。
起初,我創造了我search_strings和子日誌文件:
search_string1 = str(160000004)
file_out1 = open("outlier.txt","w")
search_string2 = str(160030003)
file_out2 = open("valid.txt","w")
search_string3 = str(150090000)
file_out3 = open("triang.txt","w")
現在我分析主要日誌文件一行一行地寫包含我search_strings到子日誌文件行:
with open ("log.txt","r") as input_file:
for line_number, line in enumerate(input_file):
if search_string1 in line:
file_out1.write(line)
if search_string2 in line:
file_out2.write(line)
if search_string3 in line:
file_out3.write(line)
我現在的問題是,似乎文件沒有正確書寫。如果我打印結果 ,我得到289行包含我的search_string。 但在我的子日誌文件只有253線,筆試和最後一個甚至沒有完成:
160000004 0.00% < fold | 4.31% outlier
160000004 0.00% < fold | 0.00% outlier
160
誰能告訴我在哪裏,我的錯誤是什麼?提前致謝!! =)
你完成循環後關閉你的輸出文件嗎? – Gregor
您正在使用'with'來打開輸入文件;你爲什麼不用它來打開輸出文件?然後這些文件將在with塊的結尾處關閉。 – dawg