簡體   English   中英

比Python上的Grep更快?

[英]Faster than Grep on Python?

因此,我通常在Bash腳本中使用的bash命令將類似於:

$ cat huge2GBfile.txt | grep -w "pattern1/|pattern2/|pattern3" > out.txt

它將在找到pattern1,2,3的huge2GBfile中輸出行。 我想知道這是否可以通過python實現。 我知道我可以用

os.system(cmd) 

但是我想知道Python中是否有類似的東西(我是一個完整的菜鳥),並且是否比使用cat + grep更快。 謝謝!

最初的想法,像

for line in f:
     if pattern in line:
          out.write(line)

快一點

即使使用的算法比grep所使用的邏輯更好(正如已經有人評論說它們經過高度優化,grep已有30年的歷史了!),仍然存在這樣的事實,它們是用C編寫的實用程序,並為系統本地編譯。

Python是一種解釋型語言,它的速度可能比本機C慢幾個數量級,因此我認為答案是否定的,python中沒有什么可以更快。

如果要逐行處理grep命令行的輸出,則可以選擇構建一個與unix命令行工具類似的python腳本,以便它可以從stdin讀取並寫入stdout,因此可以使用類似:

grep pattern file | python myscript.py

您如何從Python的stdin中讀取信息?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM