Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk membaca (atau menulis) data binari dalam Python?
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. |
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: -
Jom lihat kod lengkap
# Open a binary file f = open('D:\PythonLogo.png', 'rb') # Read lines data = f.read() # Display the data print(data)
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'
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
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()
Selepas menjalankan fail, fail akan kelihatan dalam laluan yang ditetapkan, iaitu pemacu E -
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!