[英]python reading byte by byte from bin file takes too long
我正在嘗試使用以下代碼從bin文件中讀取字節:
with open("filedata.bin","rb") as file:
data = file.read()
for byte in data:
print byte
這可以正常工作,但問題是它花費的時間太長(大約4分鍾)。 目的是讀取bin文件的任何字節,然后通過串行接口發送它們。
我的文件是101 KB。 直到現在,我還沒有通過串行接口發送任何數據。 因此,這不是問題。 我使用“打印字節”驗證了python shell上的速率。 它把我的第一個字節打印到最后一個字節。
有人知道我如何更快地讀取字節嗎?
當使用不帶任何參數的file.read()
,您會立即將整個文件讀入內存。 這通常很慢。
為了加快速度,您需要一次讀取幾個字節的文件。
您可以通過指定要讀取的字節數來執行此操作,例如:
with open("myfile", "rb") as f:
byte = f.read(1)
while byte:
# do something with the byte
byte = f.read(1)
一個更高級的方法是使用iter
函數:
for i in iter(lambda x: f.read(1), b""):
# do something with the byte
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.