2013-03-26 25 views
0

我有一個IRC客戶端,當我廣播我的桌面時,人們正在聊天。我想在我的廣播中展示這一點,並發現了一個方便的衝擊波閃光標題插件,它可以讀取文本文件並將其顯示在屏幕上。將文本行添加到文件中,如果python中有4條以上的行,則刪除第一行

我的IRC客戶端使用python腳本,每次有人寫郵件時都可以調用一個函數。

我可以將這些文本行寫入到文本文件中,但是我希望在python中有一些編碼方式,當文件中有多於'說'4行的文本時,它會刪除頂部的文本行下一個。

我打算在調用append line函數時讀取文本文件,讀取最後3行添加新行,然後將其重寫到原始文件。

當然,當腳本首先運行存在應小於3個文件中的行所以python的應占也和只讀最後2或1或0取決於...

我試着寫在前面的問題中的一些代碼,但它沒有工作,所以我不會在這裏包括它。

回答

0

你不應該放棄太容易,previous question接受的答案差不多。

你只需要做到以下幾點:

  1. 打開輸入文件,使用deque獲得的最後幾行,並追加新線
    (不要忘記用新行分隔符\n
  2. 將文件重新打開爲輸出文件並寫入您的行集合。

from collections import deque 

path = 'test.txt' 

with open(path, 'r') as file: 
    lines = deque(file, 4) 
    lines.append("\nthis is an additional line.") 

with open(path, 'w') as file: 
    file.writelines(lines) 
+0

這是Python 2.7版或Python 3中,我使用Python 2.7版,它似乎不喜歡追加 – Zac 2013-03-26 23:36:44

+0

也不要緊,我用+ =作爲concatinator代替.append() ...但這似乎取最後三個字母而不是文件的行 – Zac 2013-03-26 23:44:39

+0

這些只是標準文本文件,\ n是行結束字符。所以上面的代碼看起來會留下最後四個字符,包括\ n – Zac 2013-03-26 23:52:04

相關問題