我想比較處理一個流作爲過濾器(即獲得一點,過程,漂洗),反對sl((即獲取所有信息,然後處理)的效果。在Python中讀取文件:slurp或filter?
但是,當我運行下面的兩個代碼時,我得到了類似的結果。我期待在slurp版本中獲得更糟糕的結果。
下面的代碼片段是否如上所述做了任何不同的事情?如果它們相同,我怎麼能適應其中的一個來測試過濾器/污水差異?
我與測試腳本:
jot 100000000 | time python3 dont_slurp.py > /dev/null
jot 100000000 | time python3 slurp.py > /dev/null
Jot
生成號碼從1到x。代碼片段只是計算線條。
篩選:
import sys
lineno = 0
for line in sys.stdin:
lineno += 1
print("{:>6} {}".format(lineno, line[:-1]))
啜食:
所有的import sys
f = sys.stdin
lineno = 0
for line in f:
lineno += 1
print('{:>6} {}'.format(lineno, line[:-1]))
「Slurp」版本沒有做你認爲的事。兩個版本一次只讀一行。要一次讀取所有行,你可以在f.readlines()中執行''。 –