我有一個包含7000行字符串的文本文件。我需要根據幾個參數來搜索特定的字符串。如何在Python中高效地加載大文本文件
有人說下面的代碼效率不高(速度和內存使用率)。
f = open("file.txt")
data = f.read().split() # strings as list
- 首先,如果甚至不讓它作爲一個名單,我怎麼會甚至開始在所有的搜索?
- 加載整個文件是否有效?如果不是,該怎麼辦?
- 要過濾任何東西,我們需要搜索我們需要正確閱讀的東西!
有點混亂
我有一個包含7000行字符串的文本文件。我需要根據幾個參數來搜索特定的字符串。如何在Python中高效地加載大文本文件
有人說下面的代碼效率不高(速度和內存使用率)。
f = open("file.txt")
data = f.read().split() # strings as list
有點混亂
遍歷文件的每一行,而不存儲它。這將使程序內存高效。
with open(filname) as f:
for line in f:
if "search_term" in line:
break
如果內存使用量是您的效率衡量標準嗎?對?但如果你說話的計算速度可能更快加載一次? ...(雖然速度差異可能微不足道)... –
@JoranBeasley我認爲就速度和內存而言,這應該做到這一點,而不是一次存儲整個文件。 –
但是,重複超過7000行真的很大。是不是 –
只要它適合在內存中讀取,一次就全部可能是最快的(如果這是你的工作效率的度量)... –
@JoranBeasley我找的速度和內存效率。中間解決方案將是最好的。 –
丹尼斯·裏奇是你的真實姓名嗎?使用死者的名字似乎對我來說是無味的。 –