看板 Python 關於我們 聯絡資訊
各位先進好,我有數千個TXT檔,每個檔案約3、4百MB大小,檔案內容就一行是一個句子 ,然後我手頭有10個關鍵字,我要找數千個TXT檔裡有哪些句子有提到關鍵字。 我目前作法是一個檔案一個檔案一行一行去跟關鍵字比對,有對應到的就拋出來。 因為後續還會有其他關鍵字,又要一個一個檔案去爬,太耗時間,所以想請各位先進賜個 關鍵字,有沒有可以改進效率的方法或套件可以推薦,感謝。 6/11- 後來想試試multiprocess的概念,我後來改寫的程式碼: https://github.com/ashkayle24/KeyWord_hit/blob/master/keyword_hit-test.py 不知這樣的用法對不對,cpu一直在90%以上在跑,可否有先進給個指導... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.234.198.228 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1559948780.A.D63.html
charlie11438: 用numpy讀並使用嵌套,雖然不知道速度如何,不過應06/08 08:55
charlie11438: 該可以06/08 08:55
charlie11438: https://i.imgur.com/7xSEI7e.jpg06/08 08:55
charlie11438: 可以用這個試試看06/08 08:56
pmove: 如果只是要結果,建議找現成軟體,它可能用C寫,會比您用Py06/08 10:25
pmove: thon 寫快的多。06/08 10:25
TitanEric: multi thread去找 可以參考表現非常優秀的silver sea06/08 12:33
TitanEric: rcher06/08 12:33
TitanEric: 咦 等等 你這個需求就直接用ag就好 不用自己寫06/08 12:33
neil24: 謝謝各位大大給的建議,請問ag是什麼?06/08 15:11
zo6596001: 不知道Windows 的 Linux subsystem 有沒有grep06/08 15:42
zo6596001: Linux 的 find 跟 grep 可以快速找特定檔案的關鍵字06/08 15:43
zo6596001: 有這兩個指令的話,用subprocess popen 就可以了。 06/08 15:45
zo6596001: 作業系統會幫你處理好其他事,只要收結果就好。06/08 15:50
TitanEric: ag就是silver searcher 比grep -r還要快 06/08 18:10
ptoyhawinf: 如果檔案會一直重複查詢,我會丟進資料庫,以後下quer06/08 18:31
ptoyhawinf: y指令查詢即可。06/08 18:31
vi000246: windows有winGrep06/08 23:33
king22649: 用 solr 或 elasticsearch吧?06/09 02:23
neil24: 我有搜到想用solr,但小弟程式新手,目前搜到的教學文都06/09 06:38
neil24: 看不太懂,就匯檔建立索引這塊的邏輯不太能理解06/09 06:38
Yshuan: 我工作上是用grep windows的portable, 覺得堪用06/10 11:46
neil24: 我暫時是用multiprocess的概念去爬,一開始爬檔時間省一半06/11 09:34
neil24: 左右,但後續的速度越慢了,持續研究中...06/11 09:34
※ 編輯: neil24 (49.219.131.83 臺灣), 06/11/2019 11:00:31
king22649: 用elasticsearch吧 基本python包好好有lib 06/11 11:34
※ 編輯: neil24 (49.219.131.83 臺灣), 06/11/2019 16:04:24