Cara Membaca Fail Binari di Python

How Read Binary Files Python



Fail yang mengandungi data binari dipanggil fail binari. Sebarang data binari yang diformat atau tidak diformat disimpan dalam fail binari, dan fail ini tidak dapat dibaca oleh manusia dan digunakan oleh komputer secara langsung. Apabila fail binari diperlukan untuk membaca atau memindahkan dari satu lokasi ke lokasi lain, kandungan fail tersebut ditukar atau dikodkan menjadi format yang dapat dibaca oleh manusia. Sambungan fail binari adalah .bin. Kandungan fail binari boleh dibaca dengan menggunakan fungsi atau modul terbina dalam. Kaedah yang berbeza untuk membaca fail binari di Python telah ditunjukkan dalam tutorial ini.

Pra-syarat:

Sebelum memeriksa contoh tutorial ini, lebih baik membuat satu atau lebih fail binari untuk digunakan dalam skrip contoh. Skrip dua fail python telah diberikan di bawah untuk membuat dua fail binari. Binary1.py akan membuat fail binari yang dinamakan tali.bin yang akan mengandungi data rentetan, dan binary2.py akan membuat fail binari bernama number_list.bin yang akan mengandungi senarai data berangka.







Perduaan1.py

# Buka pengendali fail untuk membuat fail binari

fail_handler= buka('tali.bin', 'wb')

# Tambahkan dua baris teks dalam fail binari

fail_handler.menulis(b'Selamat datang ke LinuxHint. nBelajar Pengaturcaraan Python. ')

# Tutup pengendali fail

fail_handler.tutup()

Binari2.py

# Buka pengendali fail untuk membuat fail binari

fail=buka('number_list.bin','wb')

# Menyatakan senarai nilai numerik

nombor=[10,30,Empat lima,60,70,85,99]

# Tukarkan senarai menjadi susunan

penghadang=bytearray(nombor)

# Tulis susunan ke dalam fail

fail.menulis(penghadang)

fail.tutup()

Contoh-1: Baca fail binari data rentetan ke dalam array bait

Terdapat banyak cara di Python untuk membaca fail binari. Anda boleh membaca bilangan bait tertentu atau kandungan penuh fail binari dalam satu masa. Buat fail python dengan skrip berikut. The fungsi terbuka () telah digunakan untuk membuka tali.bin untuk membaca. The fungsi baca () telah digunakan untuk membaca 7 watak dari fail dalam setiap lelaran while loop and print. Seterusnya, fungsi baca () telah digunakan tanpa sebarang hujah untuk membaca kandungan penuh fail binari yang akan dicetak kemudian.



# Buka fail binari untuk dibaca

fail_handler= buka('tali.bin', 'rb')

# Baca tiga bait pertama dari fail binari

data_byte=fail_handler.membaca(7)

mencetak('Cetak tiga watak dalam setiap lelaran:')

# Ulangi gelung untuk membaca bahagian fail yang tinggal

sementaradata_byte:

mencetak(data_byte)

data_byte=fail_handler.membaca(7)


# Baca keseluruhan fail sebagai rentetan bait tunggal

dengan buka('tali.bin', 'rb') sebagaifh:

kandungan=fh.membaca()

mencetak('Cetak kandungan penuh fail binari:')

mencetak(kandungan)

Pengeluaran:

Output berikut akan muncul setelah melaksanakan skrip di atas.







Contoh-2: Baca fail binari data rentetan ke dalam larik

Buat fail python dengan skrip berikut untuk membaca fail binari bernama number_list.bin dibuat sebelumnya. Fail binari ini mengandungi senarai data berangka. Seperti contoh sebelumnya, yang fungsi terbuka () telah menggunakan membuka fail binari untuk membaca dalam skrip. Seterusnya, 5 nombor pertama akan dibaca dari fail binari dan ditukar menjadi senarai sebelum dicetak.

# Buka fail binari untuk dibaca

fail = buka('number_list.bin', 'rb')

# Baca lima nombor pertama ke dalam senarai

nombor= senarai(fail.membaca(5))

# Cetak senarai

mencetak(nombor)

# Tutup fail

fail.tutup()

Pengeluaran:

Output berikut akan muncul setelah melaksanakan skrip di atas. Fail binari mengandungi 7 nombor, dan lima nombor pertama telah dicetak dalam output.



Contoh-3: Baca fail binari menggunakan NumPy

Cara-cara membuat fail binari menggunakan Susunan NumPy dan membaca kandungan fail binari menggunakan ke dalam senarai dengan menggunakan Modul NumPy telah ditunjukkan dalam bahagian tutorial ini. Sebelum memeriksa skrip yang diberikan di bawah, anda harus memasang Modul NumPy dengan melaksanakan perintah dari terminal atau memasang Pakej NumPy dalam editor Python, di mana skrip akan dijalankan. The fungsi tofile () digunakan untuk membuat teks atau fail binari, dan fungsi fromfile () digunakan untuk membuat susunan dengan membaca teks atau fail binari.

Sintaks tofile ():

ndarray.mencuba(fail,Sep='',format='% s')

Argumen pertama adalah wajib dan mengambil nama fail atau rentetan atau jalan sebagai nilai. Fail akan dibuat jika nama fail disediakan dalam argumen ini. Argumen kedua adalah pilihan yang digunakan untuk memisahkan elemen array. Argumen ketiga adalah pilihan juga dan digunakan untuk memformat output fail teks.

Sintaks fomfile ():

kekenyangan.dari fail(fail,dtaip=terapung,mengira=-1,Sep='',mengimbangi=0,*,suka=Tiada)

Argumen pertama adalah wajib dan mengambil nama fail atau rentetan atau jalan sebagai nilai. Kandungan fail akan dibaca jika nama fail akan diberikan dalam argumen ini. The dtaip mentakrifkan jenis data dari array yang dikembalikan. Kiraan digunakan untuk mengira jumlah item. Tujuan dari Sep adalah untuk memisahkan teks atau item array. Offset digunakan untuk menentukan kedudukan semasa fail. Argumen terakhir digunakan untuk membuat objek array yang bukan a Susunan NumPy .

Buat fail python dengan skrip berikut untuk membuat fail binari menggunakan Susunan NumPy dan membaca dan mencetak kandungan fail binari.

# Import modul NumPy

mengimportkekenyangansebagaicth

# Menyatakan susunan numpy

nparray=cth.susunan([3. 4, 89, 30, Empat lima, 90, sebelas])

# Buat fail binari dari susunan numpy

nparray.mencuba('senarai.bin')

# Cetak data dari fail binari

mencetak(cth.dari fail('senarai.bin',dtaip=cth.int64))

Pengeluaran:

Output berikut akan muncul setelah melaksanakan skrip di atas.

Kesimpulan:

Tiga cara yang berbeza untuk membaca fail binari telah ditunjukkan dalam tutorial ini dengan menggunakan contoh mudah. Contoh pertama mengembalikan kandungan fail binari sebagai tatasusunan bait. Contoh kedua mengembalikan kandungan fail binari sebagai senarai. Contoh terakhir juga mengembalikan kandungan fail binari sebagai senarai.