目前有個大檔案,想要按行讀取,然后根據每行中的某個元素進行排序。
如:下面的這個兩行,讀取后,以時間進行排序,20200120031738/20200120031742,這樣形成新的一個檔案。
+ACK:GTRTO,570902,359464039842179,20495-5,RSTBAT,0183,20200120031738,000B$
+ACK:GTRTO,570902,359464039842179,20495-5,DIF,0184,20200120031742,000C$
我嘗試用sorted和sort,貌似都無法形成滿意的答案。
謝謝。
uj5u.com熱心網友回復:
分割,變成pandas的表進行排序uj5u.com熱心網友回復:
你得換一種解決思路:1).仍然將大檔案bigfile進行按行讀取
2).但每讀取一行都按一定條件寫入到新的檔案newfile中
寫新檔案時需要注意的一些條件:
1).采用隨機寫入的方式,保證newfile在每次寫入后都已經形成了正確的排序
2).在隨機寫入時如何去獲取newfile檔案位置的偏移量時,可以使用正則運算式去匹配行內容
(看你描述的檔案內容格式相對比較統一,都是+ACK:開頭,$結尾。)
3).為了增加查找效率,在每次寫入newfile時,記錄下已經寫入檔案的行數,然后利用二分查找的方式更加快速定位newfile的偏移量.
uj5u.com熱心網友回復:
當然了,如果借助資料庫表的方式去實作,其實更加方便!轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/71992.html
上一篇:爬取學科網試題求助
