2012-01-26 72 views
2

我試圖在日誌文件中的日期標記前添加一行。日誌文件中的新行

我:

打開日誌文件:

f = open("C:\Users\user\Desktop\Log.file") 

添加新行的日期 「25/01/2012」 的前面(唯一標識每個日誌行)。

f.write("\n" + "25/01/2012") 

錯誤:

Traceback (most recent call last): 
File "<pyshell#4>", line 1, in <module> 
    f.write('\n' + "25/01/2012") 
IOError: File not open for writing 
+0

你的意思是你想要在文件中間插入一行? –

回答

2
f = open("C:\Users\user\Desktop\Log.file","w"); 

默認爲 'R' 假設,即閱讀docs here

注: 'W' 將覆蓋現有文件。使用 'A' 追加

+0

謝謝你。你是第一個注意到'w'會覆蓋整個文件,這當然不是我想要做的。幸運的是我做了一個副本,並注意到你的答案。 – Federer

+0

@malcmcmul好的理解,謝謝:-) - 我建議你看看CédricJulien的答案,因爲他包含了一些關於正確記錄的其他評論。 – ManseUK

6

由於Python文檔中顯示爲open(),默認模式是讀 'R',而不是 'W' 寫作。嘗試使用:

f = open("C:\Users\user\Desktop\Log.file", 'a') 

打開你的日誌文件寫入(而不是刪除它,如果它已經存在)

關於你的最終目標,那就是在文件記錄,你看看到logging module這將允許你用日期,級別,PID和許多有用的東西格式化所有的日誌記錄?