簡體   English   中英

如何從二進制文件中讀取除最后 X 個字節之外的所有字節?

[英]How do I read all but the last X bytes from a binary file?

我想從沒有最后 4 個字節的二進制文件中讀取所有數據。 我們如何在 Python 中做到這一點?

這個問題很老,但對於在谷歌上找到這個問題的其他人,請注意:執行f.read()[:-4]會將整個文件讀入內存,然后將其切片。

如果您只需要文件的前 N ​​個字節,只需將大小作為參數傳遞給read()函數:

with open(path_to_file, 'rb') as f:
    first_four = f.read(4)

當您可以懶惰地讀取前 N 個字節並停止時,這可以避免讀取整個潛在的大文件。

如果需要文件的最后 N 個字節,可以使用os.lseek()文件的最后一個塊。 這更復雜,留給讀者練習。 :-)

像往常一樣閱讀它,然后對結果進行切片:

with open(path_to_file, 'rb') as f:
    f.read()[:-4]

暫無
暫無

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

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