我有這個項目,我需要處理大型訪問日誌,並獲得所有用戶最後一次登錄嘗試的列表。在處理日誌我得有像這樣的觀點:Python:只保存最新的登錄文件
[user1, <last login recorded>, <current login>]
[user2, <no last login recorded>, <current login>]
[user1, <last login recorded>, <current login>]
[user3, <last login recorded>, <current login>]
正如你看到的,同樣的用戶記錄數登錄。我只想獲得最終名單的最新登錄名。
我使用datetime對象進行登錄,因此將當前對象與最後一個比較很容易,但我的問題是:如何暫時保存當前最新的登錄名並將其與下一個進行比較?
簡化代碼看起來像這樣
final_list = []
for login in log_file:
login = login.split(';')
last_login = get_last_login() #ldap search for the user last login
if last_login:
final_list.append([login[0], last_login, login[1]])
else:
final_list.append([login[0], 'no_last_login_recorded', login[1]])
所以,如果我追加每個登錄到final_list []有沒有辦法來檢查,如果用戶已經在那裏,當前登錄比作一個在列表中?
有點偏離主題,但是在大多數Linux發行版中命名爲'lastlog'的命令會打印所有用戶的最後登錄時間。 –
@FlorinStingaciu很高興知道,但我正在使用ldap訪問文件。不管怎麼說,還是要謝謝你。 – sergei
只需使用用戶鍵入的字典 - 最後寫入贏得 – gkusner