如何在Python中讀取(或寫入)二進位資料?
要讀取或寫入二進位文件,首先您需要了解 Python 中二進位檔案的不同檔案模式 -
模式 | 描述 |
---|---|
rb | 開啟一個檔案以只讀二進位格式。文件指針位於文件的開頭。這是預設模式。 |
rb | 開啟一個檔案以二進位格式進行讀寫。文件指針放置在文件的開頭。 |
wb | #開啟僅以二進位格式寫入的檔案。如果檔案存在則覆蓋該檔案。如果該檔案不存在,則建立一個新檔案進行寫入。 |
wb | 開啟一個檔案以二進位格式進行寫入和讀取。如果文件存在,則覆蓋現有文件。如果文件不存在,則建立一個新文件進行讀寫。 |
ab | 開啟一個檔案以二進位格式追加。如果文件存在,則文件指標位於文件末端。也就是說,該檔案處於追加模式。如果該檔案不存在,則會建立一個新檔案進行寫入。 |
ab | 開啟檔案以二進位格式追加和讀取。如果文件存在,則文件指標位於文件末端。檔案以追加模式開啟。如果該檔案不存在,則會建立一個新檔案進行讀寫。 |
讀取二進位檔案
假設我們有一個二進位。我們可以使用 read() 方法來讀取它。首先,我們將使用 open() 方法的 rb 模式開啟二進位。我們在 D: 磁碟機中有以下原始檔案 -
#範例
讓我們看看完整的程式碼
# Open a binary file f = open('D:\PythonLogo.png', 'rb') # Read lines data = f.read() # Display the data print(data)
輸出
二進位檔案不可讀,內容無法辨識。實際產量更大。下面我們只展示了一部分。
b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x04\xb0\x00\x00\x04\xb0\x08\x06\x00\x00\x00 \xeb!\xb3\xcf\x00\x00\x00\x04gAMA\x00\x00\xb1\x8f\x0b\xfca\x05\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\x0 0\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x 93\x00\x00\x00\x07tIME\x07\xe1\x08\n\x07\x16\x07\xc9\xb2\xff\xd3\x00\x00\x80\x00IDATx\xda\ xec\x9dw\xbc]e\x95\xf7\x7f\xcf>\xe7\xa6\x91@\xe8\xc5\x02\xa2\x88\x14q0B\x12\xc0\x99\x00!\x 88(\x02\x9a\x8c\x85"\xea\x80b\xc5\x02\xa1\xf8z\xa78\x8aJ\x13EeF\x1d\xdb\x94\x80@\x08\xea\x a0\x8c\xe0\x0c\x98\x10`\x94\x92\xd0D@,#\x88\xd4\x90r\xef\xd9\xeb\xfd#\x01\x02i\xe7\x9e\xb3 \xcb\xf3\xac\xfd\xfd~>\xef; . . . \xcdn\xd2d\xb1Q\xdf\xfa\xe9\x8d|\x8f\x14\x00\x00\x00\xb4\t\x02\x0b\x00\x00\x00\xe0Q\x98\xa 9\xd0\xd5\xc7\x1c$Izp\xee>\x9a\xd8\xfa\x98\x1d\xffdr\x7f\x153\x8f\xfa\xf8\xa3\xcdQJ\x07\xec\x e5\xc8\xf5X\x95\x96\x1eu\n\xdb\xac\xa4- {\xf9{\xdbe\xf6\xc0#\xfe\xa7\t\xdd\xaf\xed\x9a\xd9\xd1\xf5\xe4\x83\xdawf\xc7w>m\xdb\xbc5- X\xff \xb3\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd02\xff?\xca\x9f\x86X\x17m\x83=\ x00\x00\x00%tEXtdate:create\x002017-08- 10T07:22:07+00:00u\xea\xe6c\x00\x00\x00%tEXtdate:modify\x002017-08- 10T07:22:07+00:00\x04\xb7^\xdf\x00\x00\x00\x00IEND\xaeB`\x82'
寫入二進位檔案
open()方法的wb模式用於以寫入格式開啟檔案。
注意 - 二進位檔案不可讀,內容無法辨識
讓我們看一下完整的範例。在這裡,檔案將儲存在E磁碟中,名稱為
範例
MyDemoBinary.bin -
# Open a file in binary format for writing f = open("E:\MyDemoBinary.bin","wb") # Elements to be added to the binary file a = [100, 200, 300] # Convert the integer elements to a bytearray myArr = bytearray(a) # The byte representation ius now written to the file f.write(myArr) f.close()
輸出
運行檔案後,檔案在設定的路徑即E磁碟中可見 -
以上是如何在Python中讀取(或寫入)二進位資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在使用Golang開發過程中,常常會遇到一些錯誤。其中之一是"undefined:io.ReadAll",這個錯誤大多數情況下是由於使用了過時的方法導致的。本文將會介紹如何解決這個錯誤。首先,讓我們來看看發生這個錯誤的原因。在golang1.15版本之前,io套件中並沒有ReadAll方法。我們在使用這個方法時,編譯器會提示「undefined:io.Re

這適用於想要執行手動啟動的用戶。如果需要協助,為您執行此操作的工具,然後檢查此處。我們可以將手動啟動過程分為兩部分。 1-從現成的批次檔確保已啟用網路。以管理員身分開啟WindowsPowershell,然後輸入以下內容以給予指令的順序列出指令。輸入金鑰,(替換為金鑰從上面的清單)使用以下指令<key>slmgr/ipk<key>從這裡下載通用票券並提取下載的檔案。現在在Powershell中輸入以下程式碼(Get-ItemProper

在Go語言中,bytes套件是一個用於操作位元組類型的套件,並且它包含了許多有用的方法,例如Split()方法。不過,在使用Split()方法時,你可能會遇到「undefined:bytes.Split」的錯誤。這種錯誤通常是由於Go版本不相容或缺少必要的依賴庫等原因引起的。這篇文章將介紹一些解決這種錯誤的方法。方法一:升級Go版本如

linux io指的是一種檔案操作;在Linux中,檔案就是一串二進位流,那麼在資訊的交換過程中,我們都是對這些流進行資料收發操作,這些操作簡稱為I/O操作;由於Linux使用的是虛擬記憶體機制,所以必須透過系統呼叫請求核心來完成IO動作。

概念fio,又稱為FlexibleIOTester,是JensAxboe編寫的應用程式。 Jens是LinuxKernel中blockIOsubsystem的維護者。 FIO是一種用於測試網路檔案系統和磁碟效能的工具,常用於驗證機型和比較檔案系統效能。它能自動將fio指令傳送到群集機器列表,並收集小檔案的IOPS和大檔案的吞吐量資料。 rw=[mode]rwmixwrite=30在混合讀寫的模式下,寫佔30%moderead順序讀write順序寫readwrite順序混合讀寫randwrite隨機寫r

在使用golang進行開發時,我們經常會遇到各種各樣的問題和錯誤提示。其中一個常見的問題就是出現了「undefined:io.TeeReader」錯誤。這個錯誤通常會在程式編譯時出現,而且有時候可能會讓人束手無策。本文將介紹如何解決這個問題,以便讓您能夠順利地進行golang的開發工作。首先,讓我們來看看這個錯誤的具體意義是什麼。當我們在使用

使用io/ioutil.WriteFile函數將字串寫入文件,並設定文件權限和縮排格式在Go語言中,使用io/ioutil套件中的WriteFile函數可以很方便地將字串寫入檔案。同時,我們也可以透過設定檔案權限和縮排格式來滿足不同的需求。下面是一個範例程式碼,示範如何使用WriteFile函數寫入檔案並設定權限和縮排格式:packagemainim

1NIO的一些基礎預備知識Java中IO流類別的體系中BIO與NIO:https://blog.csdn.net/ZGL_cyy/article/details/104326458JavaIO體系與NIO與BIO體系面試題:https://blog. csdn.net/ZGL_cyy/article/details/122836368為什麼要使用NIO:因為傳統IO檔案傳輸速率低,所以選擇了NIO進行檔案的下載操作。 NIO還有一個好處就是其中零拷貝可以實現減少記憶體中資料的重複,減少CPU操作的效果。所
