Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membaca (atau menulis) data binari dalam Python?

Bagaimana untuk membaca (atau menulis) data binari dalam Python?

WBOY
WBOYke hadapan
2023-09-03 08:57:201713semak imbas

Untuk membaca atau menulis fail binari, mula-mula anda perlu memahami mod fail fail binari yang berbeza dalam Python -

Mod Penerangan
rb Buka fail dalam format binari baca sahaja. Penunjuk fail berada di permulaan fail. Ini ialah mod lalai.
rb+ Buka fail dalam format binari untuk membaca dan menulis. Penunjuk fail diletakkan pada permulaan fail.
wb Buka fail yang ditulis dalam format binari sahaja. Menimpa fail jika ia wujud. Jika fail itu tidak wujud, fail baharu dicipta untuk menulis.
wb+ Buka fail dalam format binari untuk menulis dan membaca. Jika fail wujud, fail sedia ada akan ditimpa. Jika fail itu tidak wujud, fail baharu dicipta untuk membaca dan menulis.
ab Buka fail untuk ditambahkan dalam format binari. Jika fail wujud, penuding fail berada di hujung fail. Iaitu, fail berada dalam mod tambah. Jika fail itu tidak wujud, fail baharu dicipta untuk menulis.
ab+ Buka fail untuk ditambahkan dan dibaca dalam format binari. Jika fail wujud, penuding fail berada di hujung fail. Fail dibuka dalam mod tambah. Jika fail itu tidak wujud, fail baharu dicipta untuk membaca dan menulis.

Baca fail binari

Andaikan kita mempunyai fail binari. Kita boleh membacanya menggunakan kaedah read(). Pertama, kami akan membuka fail binari menggunakan mod rb kaedah open(). Kami mempunyai fail sumber berikut dalam pemacu D: -

Bagaimana untuk membaca (atau menulis) data binari dalam Python?

Contoh

Jom lihat kod lengkap

# Open a binary file
f = open('D:\PythonLogo.png', 'rb')

# Read lines
data = f.read()

# Display the data
print(data)

Output

Fail binari tidak boleh dibaca dan kandungannya tidak dikenali. Keluaran sebenar lebih besar. Di bawah kami hanya menunjukkan sebahagian daripadanya.

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'

Tulis ke fail binari

Mod

wb kaedah open() digunakan untuk membuka fail dalam format penulisan.

Perhatian - Fail binari tidak boleh dibaca dan kandungannya tidak dikenali

Mari kita lihat contoh lengkapnya. Di sini, fail akan disimpan dalam E drive dengan nama

Contoh

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()

Output

Selepas menjalankan fail, fail akan kelihatan dalam laluan yang ditetapkan, iaitu pemacu E -

Bagaimana untuk membaca (atau menulis) data binari dalam Python?

Atas ialah kandungan terperinci Bagaimana untuk membaca (atau menulis) data binari dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam