簡體   English   中英

如何使用python更快地讀取文件中的幾行?

[英]How to I read several lines in a file faster using python?

截至目前,我使用以下python代碼:

file = open(filePath, "r")
lines=file.readlines()
file.close()

假設我的文件有幾行(10,000或更多),那么如果我為多個文件執行此操作,我的程序會變慢。 有沒有辦法加快Python的速度? 閱讀各種鏈接我理解readlines將文件行存儲在內存中,這就是代碼變慢的原因。

我也嘗試了下面的代碼,我得到的時間增加了17%。

lines=[line for line in open(filePath,"r")]

python2.4中是否還有其他模塊(我可能已經錯過了)。 謝謝,桑迪亞

for line in file:

這為您提供了一個迭代器,它一次讀取一行文件對象,然后從內存中丟棄上一行。

文件對象是它自己的迭代器,例如iter(f)返回f(除非f被關閉)。 當文件用作迭代器時,通常在for循環中(例如,對於f:print行中的行),將重復調用next()方法。 此方法返回下一個輸入行,或在達到EOF時引發StopIteration。 為了使for循環成為循環文件行的最有效方式(一種非常常見的操作),next()方法使用隱藏的預讀緩沖區。 由於使用預讀緩沖區,將next()與其他文件方法(如readline())結合使用是行不通的。 但是,使用seek()將文件重新定位到絕對位置將刷新預讀緩沖區。 版本2.3中的新功能。

簡短回答:不要將行分配給變量,只需在循環中執行您需要的任何操作。

暫無
暫無

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

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