Jadual Kandungan
Baca fail binari
Contoh
Output
Tulis ke fail binari
Rumah pembangunan bahagian belakang Tutorial Python Bagaimana untuk membaca (atau menulis) data binari dalam Python?

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

Sep 03, 2023 am 08:57 AM
io bytes Membaca (membaca) data binari: fail Tulis (tulis) data binari: fail

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyelesaikan ralat 'undefined: io.ReadAll' dalam golang? Bagaimana untuk menyelesaikan ralat 'undefined: io.ReadAll' dalam golang? Jun 25, 2023 am 10:01 AM

Semasa proses pembangunan menggunakan Golang, kami sering menghadapi beberapa ralat. Salah satu daripadanya ialah "undefined:io.ReadAll", ralat ini kebanyakannya disebabkan oleh menggunakan kaedah yang sudah lapuk. Artikel ini akan menerangkan cara menyelesaikan ralat ini. Mula-mula, mari kita lihat mengapa ralat ini berlaku. Sebelum golang1.15, tiada kaedah ReadAll dalam pakej io. Apabila kami menggunakan kaedah ini, pengkompil akan menggesa "undefined:io.Re

Kaedah dan tutorial pengaktifan manual HWID V 2.2 Kaedah dan tutorial pengaktifan manual HWID V 2.2 Oct 20, 2023 pm 07:17 PM

Ini adalah untuk pengguna yang ingin melakukan pengaktifan manual. Jika anda memerlukan bantuan dengan alat untuk anda melakukan ini, kemudian semak di sini. Kita boleh membahagikan proses pengaktifan manual kepada dua bahagian. 1- Daripada fail kumpulan siap sedia pastikan internet didayakan. Buka Windows Powershell sebagai pentadbir dan masukkan yang berikut untuk menyenaraikan arahan dalam susunan yang diberikan. Masukkan kekunci, (gantikan dengan kunci daripada senarai di atas) Gunakan arahan berikut &lt;key&gt;slmgr/ipk&lt;key&gt; Muat turun tiket universal dari sini dan ekstrak fail yang dimuat turun. Sekarang masukkan kod berikut dalam Powershell (Get-ItemProper

Bagaimana untuk menyelesaikan ralat 'undefined: bytes.Split' dalam golang? Bagaimana untuk menyelesaikan ralat 'undefined: bytes.Split' dalam golang? Jun 25, 2023 pm 02:02 PM

Dalam bahasa Go, pakej bait ialah pakej untuk memanipulasi jenis bait, dan ia mengandungi banyak kaedah berguna, seperti kaedah Split(). Walau bagaimanapun, apabila menggunakan kaedah Split(), anda mungkin menghadapi ralat "undefined: bytes.Split". Ralat ini biasanya disebabkan oleh versi Go yang tidak serasi atau kekurangan perpustakaan bergantung yang diperlukan. Artikel ini akan memperkenalkan beberapa kaedah untuk menyelesaikan ralat ini. Kaedah 1: Tingkatkan versi Go seperti berikut

Apakah maksud linux io? Apakah maksud linux io? Mar 24, 2023 am 09:43 AM

Linux io merujuk kepada operasi fail dalam Linux, fail ialah satu siri aliran binari, jadi semasa pertukaran maklumat, kita semua melakukan operasi penghantaran dan penerimaan data pada aliran ini. kerana Linux menggunakan mekanisme memori maya, jadi kernel mesti diminta melalui panggilan sistem untuk menyelesaikan operasi IO.

Pertempuran praktikal: ujian baca dan tulis io cakera keras pada Linux Pertempuran praktikal: ujian baca dan tulis io cakera keras pada Linux Feb 19, 2024 pm 03:40 PM

Concept fio, juga dikenali sebagai FlexibleIOTester, ialah aplikasi yang ditulis oleh JensAxboe. Jens ialah penyelenggara blockIOsubsystem dalam LinuxKernel. FIO ialah alat yang digunakan untuk menguji sistem fail rangkaian dan prestasi cakera Ia sering digunakan untuk mengesahkan model mesin dan membandingkan prestasi sistem fail. Ia secara automatik menghantar arahan fio ke senarai mesin kluster dan mengumpul IOPS untuk fail kecil dan data pemprosesan untuk fail besar. rw=[mode]rwmixwrite=30 Dalam mod baca dan tulis bercampur, menulis akaun untuk 30% baca berurutan baca tulis berurutan tulis baca tulis berurutan bercampur baca dan tulis randwrite tulis rawak r

Gunakan fungsi io/ioutil.WriteFile untuk menulis rentetan pada fail dan menetapkan kebenaran fail dan format lekukan Gunakan fungsi io/ioutil.WriteFile untuk menulis rentetan pada fail dan menetapkan kebenaran fail dan format lekukan Jul 24, 2023 pm 06:21 PM

Gunakan fungsi io/ioutil.WriteFile untuk menulis rentetan pada fail, dan tetapkan kebenaran fail dan format lekukan Dalam bahasa Go, anda boleh menulis rentetan ke fail dengan mudah menggunakan fungsi WriteFile dalam pakej io/ioutil. Pada masa yang sama, kami juga boleh menetapkan kebenaran fail dan format lekukan untuk memenuhi keperluan yang berbeza. Berikut ialah contoh kod yang menunjukkan cara menggunakan fungsi WriteFile untuk menulis ke fail dan menetapkan kebenaran dan format lekukan: packagemainim

Bagaimana untuk menyelesaikan ralat 'undefined: io.TeeReader' dalam golang? Bagaimana untuk menyelesaikan ralat 'undefined: io.TeeReader' dalam golang? Jun 25, 2023 am 09:51 AM

Apabila membangun dengan golang, kita sering menghadapi pelbagai masalah dan mesej ralat. Salah satu masalah biasa ialah ralat "undefined:io.TeeReader". Ralat ini biasanya berlaku apabila program disusun, dan kadangkala ia boleh mengecewakan. Artikel ini akan memperkenalkan cara untuk menyelesaikan masalah ini supaya anda dapat menjalankan kerja pembangunan golang dengan lancar. Mula-mula, mari kita lihat apa sebenarnya maksud ralat ini. apabila kita menggunakan

Apakah operasi baca dan tulis penciptaan aliran Java IO? Apakah operasi baca dan tulis penciptaan aliran Java IO? May 14, 2023 am 08:22 AM

Konsep aliran IO pada mulanya boleh difahami sebagai penghantaran data Kami meletakkan satu set data ke dalam: 1234567 dan memindahkannya dari fail hello ke fail haha ​​Jika anda menggunakan kaedah program untuk memindahkan, anda perlu memindahkannya satu demi satu, maksudnya, ia adalah penghantaran bait demi bait Kami hanya boleh meneruskan atau membaca satu bait pada satu masa. Ini adalah proses umum aliran io jenis fail. Seperti: fail teks, gambar, lagu mp3, video, dsb. Oleh kerana strim io dibaca bait demi bait, kita perlu menggunakan pembolehubah bait tunggal bait untuk mendapatkan panjang. Jika anda mendapat terlalu banyak kandungan, anda perlu menggunakan tatasusunan yang sepadan. Kaedah yang sepadan dengan aliran io perlu ditulis dalam semua kaedah aliran io.

See all articles