目錄
讀取二進位檔案
範例
輸出
寫入二進位檔案
首頁 後端開發 Python教學 如何在Python中讀取(或寫入)二進位資料?

如何在Python中讀取(或寫入)二進位資料?

Sep 03, 2023 am 08:57 AM
io bytes 讀取(讀)二進位資料:文件 寫入(寫)二進位資料:文件

要讀取或寫入二進位文件,首先您需要了解 Python 中二進位檔案的不同檔案模式 -

模式 描述
rb 開啟一個檔案以只讀二進位格式。文件指針位於文件的開頭。這是預設模式。
rb 開啟一個檔案以二進位格式進行讀寫。文件指針放置在文件的開頭。
wb #開啟僅以二進位格式寫入的檔案。如果檔案存在則覆蓋該檔案。如果該檔案不存在,則建立一個新檔案進行寫入。
wb 開啟一個檔案以二進位格式進行寫入和讀取。如果文件存在,則覆蓋現有文件。如果文件不存在,則建立一個新文件進行讀寫。
ab 開啟一個檔案以二進位格式追加。如果文件存在,則文件指標位於文件末端。也就是說,該檔案處於追加模式。如果該檔案不存在,則會建立一個新檔案進行寫入。
ab 開啟檔案以二進位格式追加和讀取。如果文件存在,則文件指標位於文件末端。檔案以追加模式開啟。如果該檔案不存在,則會建立一個新檔案進行讀寫。

讀取二進位檔案

假設我們有一個二進位。我們可以使用 read() 方法來讀取它。首先,我們將使用 open() 方法的 rb 模式開啟二進位。我們在 D: 磁碟機中有以下原始檔案 -

如何在Python中讀取(或寫入)二進位資料?

#範例

讓我們看看完整的程式碼

# 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中讀取(或寫入)二進位資料?

#

以上是如何在Python中讀取(或寫入)二進位資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何解決 golang 中的 'undefined: io.ReadAll” 錯誤? 如何解決 golang 中的 'undefined: io.ReadAll” 錯誤? Jun 25, 2023 am 10:01 AM

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

HWID V 2.2手動啟動的方法和教程 HWID V 2.2手動啟動的方法和教程 Oct 20, 2023 pm 07:17 PM

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

如何解決 golang 中的 'undefined: bytes.Split” 錯誤? 如何解決 golang 中的 'undefined: bytes.Split” 錯誤? Jun 25, 2023 pm 02:02 PM

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

linux io指的是什麼 linux io指的是什麼 Mar 24, 2023 am 09:43 AM

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

實戰:Linux上硬碟io讀寫測試 實戰:Linux上硬碟io讀寫測試 Feb 19, 2024 pm 03:40 PM

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

如何解決 golang 中的 'undefined: io.TeeReader” 錯誤? 如何解決 golang 中的 'undefined: io.TeeReader” 錯誤? Jun 25, 2023 am 09:51 AM

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

使用io/ioutil.WriteFile函數將字串寫入文件,並設定文件權限和縮排格式 使用io/ioutil.WriteFile函數將字串寫入文件,並設定文件權限和縮排格式 Jul 24, 2023 pm 06:21 PM

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

Java怎麼使用NIO優化IO實作檔案上傳下載功能 Java怎麼使用NIO優化IO實作檔案上傳下載功能 May 12, 2023 pm 09:31 PM

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操作的效果。所

See all articles