Cara menggunakan python read binary file

Ketika Anda bekerja dengan bahasa pemrograman Python, Anda mungkin akan diharuskan membaca dan menulis file I/O. Oleh karena itu belajar pemrograman Python tidak akan lengkap rasanya jika Anda tidak belajar tentang I/O File.

Oleh karena itu, kami akan membahas tentang cara membaca dan menulis File I/O untuk Anda yang ingin belajar Python.

Table of Contents

Apa Itu File I/O?

Cara menggunakan python read binary file

Ketika Anda belajar pemrograman Python, Anda akan menemukan istilah I/O File. Fungsi bawaan Python input() dan print() melakukan operasi baca/tulis dengan aliran IO standar. Fungsi input() membaca teks ke dalam variabel memori dari keyboard yang didefinisikan sebagai sys.stdin dan fungsi print() mengirim data ke perangkat tampilan yang diidentifikasi sebagai sys.stdout. Modul sys menyajikan definisi objek-objek ini.

Alih-alih perangkat output standar, jika data disimpan dalam file komputer persisten maka dapat digunakan selanjutnya. File adalah lokasi bernama di perangkat penyimpanan non-volatile komputer seperti disk. Fungsi bawaan Python open() mengembalikan objek file yang dipetakan ke file pada penyimpanan permanen seperti disk.

File memiliki lokasi bernama pada disk untuk menyimpan informasi terkait. Mereka digunakan untuk menyimpan data secara permanen dalam memori non-volatile (misalnya hard disk). Karena RAM bersifat volatil (data hilang saat komputer dimatikan), memori ini secara permanen menyimpan file dan menggunakannya untuk penggunaan data di masa mendatang.

ika Anda ingin membaca  atau menulis ke suatu file, Anda harus membukanya terlebih dahulu. Selanjutnya, Anda perlu menutup file sehingga sumber daya yang terikat padanya dilepaskan. Oleh sebab itu,  operasi file dengan Python dilakukan dalam urutan berikut:

  • Buka file
  • Membaca atau menulis (melakukan operasi)
  • Tutup file

Membuka File di Python

Python memiliki fungsi open() bawaan untuk membuka file . Fungsi ini membalikkan objek file, yang juga dikenal sebagai pegangan. Hal ini karena ia digunakan untuk membaca atau memodifikasi file terkait yaitu File I/O yang digunakan.

>>> x = open("example.txt")    # membuka file di direktori saat ini
>>> x = open("C:/Python38/example.txt")  # mendeskripsikan lokasi file secara rinci

Kita dapat menentukan mode saat membuka file. Dalam mode, kita menentukan apakah kita ingin membaca r, menulis w atau menambahkan a ke file. Kami juga dapat menentukan apakah kami ingin membuka file dalam mode teks atau mode biner.

Standarnya adalah membaca dalam mode teks. Pada mode ini, Anda akan mendapatkan string saat membaca dari file. Mode biner, di sisi lain, mengembalikan byte, dan mode  ini harus digunakan ketika berhadapan dengan file non-teks seperti gambar atau file yang dapat dieksekusi.

ModeDeskripsirMembuka file untuk dibaca. (default)wMembuka file untuk menulis. Membuat file baru jika tidak ada atau memotong file jika ada.xMembuka file untuk pembuatan eksklusif. Jika file sudah ada, operasi gagal.aMembuka file untuk ditambahkan di akhir file tanpa memotongnya. Membuat file baru jika tidak ada.tTerbuka dalam mode teks. (default)bTerbuka dalam mode biner.+Buka file untuk pembaruan (baca dan tulis)

 

Berbeda dengan bahasa pemrograman lain, huruf a tidak berarti angka 97 sampai dikodekan dalam ASCII (atau pengkodean setara lainnya). Selain itu, pengkodean default bergantung pada platform. Di windows, ini adalah cp1252 tetapi utf-8 di Linux.

Jadi, kita juga tidak boleh bergantung pada penyandian default atau kode kita akan berperilaku berbeda di platform yang berbeda. Oleh karena itu, saat bekerja dengan file dalam mode teks, sangat disarankan untuk menentukan jenis penyandian.

x = open("example.txt", mode='r', encoding='utf-8')

Setelah Anda selesai bekerja dengan file tersebut, Anda harus menutup file tersebut dengan benar. Menutup file akan melepaskan berbagai resource yang terikat dengan file tersebut. Hal itu dilakukan dengan menggunakan metode close() yang tersedia di Python.

Python memiliki pengumpul sampah untuk membersihkan objek yang tidak direferensikan tetapi kita tidak boleh mengandalkannya untuk menutup file.

Artikel Terkait  Tutorial Python 37 : Cara Melakukan XML Parsing pada Python

x = open("example.txt", encoding = 'utf-8')
# melakukan operasi file
x.close()

Cara ini tidak sepenuhnya aman. Jika pengecualian terjadi saat Anda melakukan  operasi dengan file, kode akan berakhir tanpa menutup file.

try:
   x = open("example.txt", encoding = 'utf-8')
   # melakukan operasi file
finally:
   x.close()

Dengan cara ini, kami menjamin bahwa file ditutup dengan benar bahkan jika pengecualian muncul yang menyebabkan aliran program berhenti. Cara terbaik untuk menutup file adalah dengan menggunakan pernyataan with. Ini memastikan bahwa file ditutup ketika blok di dalam pernyataan with keluar. Kita tidak perlu memanggil metode close() secara eksplisit. Itu dilakukan secara internal ketika menutup file I/O.

Dalam menulis  file dengan Python, Anda perlu membuka file dalam mode w write dan menambahkan kreasi eksklusif atau x.  Kita harus berhati-hati dengan mode w, karena ini akan menimpa file jika sudah ada. Karena ini, semua data sebelumnya dihapus.

with open("example.txt",'w',encoding = 'utf-8') as x:
   x.write("Contoh menulis file\n")
   x.write("Ini adalah contoh\n")
   x.write("Selamat Belajar\n")

Penulisan string atau urutan byte (pada file biner) ditulis dengan memakai metode write(). Metode ini bergina mengembalikan banyaknya karakter yang ditulis ke dalam file.

Program ini akan membuat file baru bernama test.txt di direktori saat ini jika tidak ada. Jika memang ada, itu akan ditimpa. Kita harus memasukkan karakter baris baru sendiri untuk membedakan baris yang berbeda ketika menulis File I/O di Python.

Membaca File di Python

Jika Anda ingin membaca file dengan Python, Anda perlu membuka file dalam mode baca. Ada berbagai metode yang bisa Anda pakai untuk melakukan ini. Data berukuran besar dapat dibaca menggunakan metode read(size).

Ia akan membaca dan mengembalikan hingga akhir file apabila parameter ukuran tidak ditentukan. Anda dapat menggunakan  untuk loop untuk membaca file baris demi baris:

>>> x = open("example.txt",'r',encoding = 'utf-8')
>>> x.read(2)    # membaca 2 data pertama
'menulis'

>>> x.read(2)    # membaca 2 data selanjutnya
' Ini '

>>> x.read()     # membaca isi file secara menyeluruh
'Contoh menulis file\nIni adalah contoh\nSelamat Belajar\n'

>>> x.read()  # mengembalikan string kosong
''

Kita dapat melihat bahwa metode read() mengembalikan baris baru sebagai ‘\n’. Setelah akhir file tercapai, kami mendapatkan string kosong untuk pembacaan lebih lanjut. Kita dapat mengubah kursor (posisi) file kita saat ini menggunakan metode seek(). Demikian pula, metode tell() mengembalikan posisi kita saat ini (dalam jumlah byte).

>>> x.tell()    # mendapatkan posisi file saat ini

>>> x.seek(0)   # membawa posisi kursor pada file menuju posisi awal

>>> print(x.read())  # membaca keseluruhan file
Contoh menulis file
Ini adalah contoh
Selamat Belajar

Cara paling efisien dan cepat adalah dengan membaca file baris demi baris menggunakan for loop.

>>> for line in x:
...     print(line, end = '')
...
Contoh menulis file
Ini adalah contoh
Selamat Belajar

Dalam program ini, baris dalam file itu sendiri menyertakan karakter baris baru \n. Jadi, kami menggunakan parameter akhir dari fungsi print() untuk menghindari dua baris baru saat mencetak.

Atau, kita dapat menggunakan metode readline() untuk membaca baris individual dari sebuah file. Metode ini membaca file hingga baris baru, termasuk karakter baris baru pada file I/O.

>>> x.readline()
'Contoh menulis file\n'

>>> x.readline()
'Ini adalah contoh\n'

>>> x.readline()
'Selamat Belajar\n'

>>> x.readline()
''

Terakhir, metode readlines() mengembalikan daftar baris yang tersisa dari seluruh file. Semua metode pembacaan ini mengembalikan nilai kosong saat akhir file (EOF) tercapai.

>>> x.readlines()
['Contoh menulis file\n', 'Ini adalah contoh\n', 'Selamat Belajar\n']

Artikel Terkait  Tutorial Python 8 : Langkah Mudah Membuat Operasi Kondisional pada Python

Metode File I/O Python

Ada berbagai metode yang tersedia dengan objek file. Beberapa dari mereka telah digunakan dalam contoh di atas. Berikut adalah daftar lengkap metode dalam mode teks dengan deskripsi singkat:

MetodeDeskripsiclose()Menutup file yang dibuka. Ini tidak berpengaruh jika file sudah ditutup.detach()Memisahkan buffer biner yang mendasarinya dari TextIOBase dan mengembalikannya.fileno()Mengembalikan nomor integer (deskriptor file) dari file.flush()Membersihkan buffer tulis dari aliran file.isatty()Mengembalikan True jika aliran file bersifat interaktif.read(n)Membaca paling banyak n karakter dari file. Membaca sampai akhir file jika negatif atau None.readable()Mengembalikan True jika aliran file dapat dibaca.readline(n=-1)Membaca dan mengembalikan satu baris dari file. Membaca paling banyak n byte jika ditentukan.readlines(n=-1)Membaca dan mengembalikan daftar baris dari file. Membaca paling banyak n byte/karakter jika ditentukan.seek(offset,from=SEEK_SET)Mengubah posisi file ke byte offset, mengacu dari (mulai, saat ini, akhir).seekable()Mengembalikan True jika aliran file mendukung akses acak.tell()Mengembalikan lokasi file saat ini.truncate(size=None)Mengubah ukuran aliran file ke ukuran byte. Jika ukuran tidak ditentukan, ubah ukuran ke lokasi saat ini.writable()Mengembalikan True jika aliran file dapat ditulis.write(s)Menulis string s ke file dan mengembalikan jumlah karakter yang ditulis.writelines(lines)Menulis daftar baris ke file.

 

Demikianlah penjelasan tentang File I/O untuk anda yang ingin belajar pemrograman Python. Anda bisa belajar Python dengan Codekey secara gratis, mudah, dan bisa dilakukan kapan saja.

Codekey adalah media untuk belajar pemrograman Python secara gratis dengan materi yang ada di situs Codekey. Ingin mulai belajar Python dengan mudah? Kunjungi situs Codekey di https://codekey.id/.