我想解析由BitTorrent Sync使用Python創建的調試日誌。我正在使用的樣本日誌相當大(〜10 MB),所以如果有人想看看這裏看到:http://www.datafilehost.com/d/01a0ae7c(7z壓縮;不要使用他們的下載器)使用Python的BitTorrent同步日誌解析
我想創建一個CSV文件,包括文件名,開始時間&結束時間(接收),無塊,平均時間&傳輸速度等
我得到了我的想法,從Python的文件...作爲一個菜鳥,它會需要一些時間。從日誌
例子:
[20141006 12:10:42.290] SyncFilesController: Got file from remote (192.168.3.13:41740): AUD_30_3822029472_1442025768_20140923053708.out state: 1 type: file total:801 have:801 t:1412577403 mt:1412577403 7842B73B340FD81AB3B426CBB0822FE68FF156B7
[20141006 12:10:43.684] /home/de/Desktop/Sync_test/AUD_16_1122404893_7156305832_20131013215115.out: Piece 3 complete
[20141006 12:11:03.951] Finished downloading file AUD_16_1122404893_7156305832_20131013215115.out, writing file attributes mt:1412577397
我的第一種方法:
log=open("sync_de.log",'r');
fn=open("fn.log",'w');
st=open("st.log",'w');
et=open("et.log",'w');
for eachline in log:
if 'Got file from remote' in eachline:
fn.write(str(eachline[88:135]) + '\n')
elif 'event = "IN_CREATE"' in eachline:
st.write(str(eachline[43:90] + ': ' + eachline[10:22]) + '\n')
elif 'Finished downloading file' in eachline:
et.write(str(eachline[50:97] + ': ' + eachline[10:22]) + '\n')
如何合併這些數據,而不將它們存儲在單獨的文件?任何幫助表示讚賞。
哦,10mb是蟒蛇小菜一碟。您可以輕鬆加載4GB,10GB的文件,具體取決於您的內存。 – 2014-10-06 08:53:25
謝謝!它看起來很有希望,但問題是'if'條件是動態的,即如果每行中'從遠程獲取文件'爲true,則每行[88:135]給出文件名,而每行中'event ='IN_CREATE''爲真那麼eachline [10:22]給出了開始時間,儘管那些2'每一行可能不同。 – Tito 2014-10-06 09:29:09
'in'會在字符串中找到它,而不管它在哪裏。你可以嘗試正則表達式。這是最強大的東西。它會打你的心... – 2014-10-06 09:53:14