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

WBOY
Lepaskan: 2023-09-03 08:57:20
ke hadapan
1785 orang telah melayarinya

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)
Salin selepas log masuk

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'
Salin selepas log masuk

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()
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan