簡體   English   中英

python從bin文件中逐字節讀取時間太長

[英]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.

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