Baca dan tulis file adalah teknik dasar yang harus dipahami dalam pemrograman Python, karena banyak digunakan untuk pengolahan dan pemerosesan file. Paham cara membaca dan menulis file dengan Python akan membuatmu mampu membuat aplikasi yang bisa mengambil dan menyimpan data ke file. Selain itu juga, kamu akan lebih mudah memahami beberapa materi Python selanjutnya, seperti baca dan parsing file JSON, XML, CSV, XLS, dan sebagainya. Ada banyak sekali tipe file pada komputer, seperti dokumen, video, gambar, audio, arsip, dll. Pada Python, file hanya dikelompokkan menjadi dua tipe: File Teks dan File Binary.
Daftar Isi
Jenis File dalam Python
File Teks
File teks adalah file yang berisi teks. Setiap baris teks memiliki EOL (End of Line). Contohnya adalah TXT, MD, CSV, JSON, dsb.
File Binary
File binary adalah file yang bukan teks, hanya bisa diproses oleh program tertentu yang memahami strukturnya. Contohnya adalah EXE, JPG, MKV, M4A, 3GP, dsb.
Pada tutorial ini, kita akan hanya belajar cara membaca dan menulis file teks saja. Untuk file binary, mungkin nanti di kesempatan yang lain.
Cara Membaca File di Python
Python sudah menyediakan fungsi open()
untuk membaca dan menulis file. Fungsi ini memiliki dua parameter, yaitu nama file dan mode. Objek file
adalah variabel objek yang menampung isi file. Kita bisa melakukan pemrosesan file berkatnya. Nama file bisa kita isi langsung apabila file-nya terletak dalam satu direktori dengan skrip python. Namun, apabila terletak di direktori yang berbeda, maka kita harus memberikan alamat path file-nya. Misalnya seperti ini:
python
obj_file = open("/path/ke/file.txt", "r")
Parameter mode digunakan untuk menentukan hak akses terhadap file. Ada beberapa mode yang tersedia:
- “r”: hanya baca saja
- “w”: akses untuk menulis file, jika file sudah ada, maka file akan di replace dan diganti dengan yang baru ditulis
- “a”: digunakan untuk append atau menambah data ke file, artinya jika sudah ada data dalam file, maka akan ditambahkan dan tidak di-replace
- “r+”: digunakan untuk membaca sekaligus menulis data ke file
Pada Windows, kadang ditambahkan “b” di belakangnya, seperti “rb”, “wb”, “ab”, “r+b”. Artinya untuk membuka file dalam mode binary. Ini diperlukan karena antara EOL Unix dan Windows berbeda, dan file binary seperti JPG dan EXE bisa rusak pada Windows kalau tidak ditambahkan akhiran “b”. Namun, di Unix/Linux tidak masalah, tanpa harus menggunakan akhiran “b”.
Contoh Penggunaan
Tahu teori saja tidaklah cukup. Kita butuh praktek dan latihan agar lebih paham. Sekarang silahkan buat direktori bernama file-io
, lalu di dalamnya buat file puisi.txt
dan baca_file.py
.
📂 file-io/
├── 📜 baca_file.py
└── 📄 puisi.txt
Setelah itu, silahkan buka file puisi.txt
dengan notepad atau teks editor, kemudian isi dengan teks berikut:
Engkau bahkan bukan lagi variabel bagiku
Engkau adalah konstanta abadi yang tak tergantikan...
Jangan lupa di simpan.
Membaca File Per Baris
Selanjutnya kita akan mulai menulis kode programnya. Berikut adalah contoh kode untuk membaca isi file per baris:
# buka file
file_puisi = open("puisi.txt", "r")
# baca isi file
print file_puisi.readlines()
# tutup file
file_puisi.close()
Kode di atas akan menghasilkan output berupa list, karena kita menggunakan method readlines()
. Perhatikan bahwa karakter \n
adalah EOL (End of Line), yang akan membuat baris baru.
Jika kita ingin mencetak baris per baris, kita bisa mengubah kode tersebut seperti ini:
# buka file
file_puisi = open("puisi.txt", "r")
# baca isi file
puisi = file_puisi.readlines()
# cetak baris pertama
print puisi[0]
# cetak baris kedua
print puisi[1]
# tutup file
file_puisi.close()
Hasil outputnya akan mencetak baris-baris teks dari file.
Membaca Semua Teks dalam File
Kalau tadi kita membaca isi file per baris, sekarang kita coba baca semua teks menggunakan method read()
:
# buka file
file_puisi = open("puisi.txt", "r")
# baca isi file
puisi = file_puisi.read()
# cetak isi file
print puisi
# tutup file
file_puisi.close()
Perbedaan antara read()
dan readlines()
adalah bahwa read()
membaca seluruh teks dan mengembalikan nilai string, sementara readlines()
membaca isi file per baris dan mengembalikan nilai berupa list.
Menulis File di Python
Seperti yang sudah kita ketahui, ada tiga mode yang digunakan bila ingin menulis file, yaitu “w”, “a”, dan “r+”. Berikut contoh-contoh penggunaannya:
Menulis File dengan Mode “w”
Berikut adalah contoh program untuk menulis file dengan mode “w”:
print "Selamat datang di Program Biodata"
print "================================="
# Ambil input dari user
nama = raw_input("Nama: ")
umur = input("Umur: ")
alamat = raw_input("Alamat: ")
# format teksteks = “Nama: {}\nUmur: {}\nAlamat: {}”.format(nama, umur, alamat)
# buka file untuk ditulis
file_bio = open("biodata.txt", "w")
# tulis teks ke file
file_bio.write(teks)
# tutup file
file_bio.close()
Program di atas akan membuat file biodata.txt
atau menimpanya jika sudah ada, dengan data biodata yang dimasukkan oleh pengguna.
Menulis File dengan Mode “a” (Append)
Apabila kita tidak ingin menulis ulang atau menindih file yang sudah ada, kita bisa menggunakan mode “a” (append) untuk menulisnya. Berikut adalah contoh programnya:
print "Selamat datang di Program Biodata"
print "================================="
# Ambil input dari user
nama = raw_input("Nama: ")
umur = input("Umur: ")
alamat = raw_input("Alamat: ")
# format teks
teks = "\nNama: {}\nUmur: {}\nAlamat: {}\n---".format(nama, umur, alamat)
# buka file untuk ditulis
file_bio = open("biodata.txt", "a")
# tulis teks ke file
file_bio.write(teks)
# tutup file
file_bio.close()
Program di atas akan menambahkan data biodata baru ke dalam file biodata.txt
tanpa menghapus data yang sudah ada.
Membaca dan Menulis File dengan Mode “r+”
Saat kita ingin membaca dan menulis file bersamaan, kita bisa menggunakan mode “r+” yang memungkinkan kita untuk membaca dan menulis ke dalam file tanpa perlu membukanya dua kali. Berikut adalah contoh programnya:
print "Selamat datang di Program Biodata"
print "================================="
# buka file untuk dibaca dan ditulis
file_bio = open("biodata.txt", "r+")
teks = file_bio.read()
# cetak isi file
print teks
# Ambil input dari user
nama = raw_input("Nama: ")
umur = input("Umur: ")
alamat = raw_input("Alamat: ")
# format teks
teks = "\nNama: {}\nUmur: {}\nAlamat: {}\n---".format(nama, umur, alamat)
# tulis teks ke file
file_bio.write(teks)
# tutup filefile_bio.close()
Dengan mode “r+”, kita dapat membaca isi file, mencetaknya, dan kemudian menulis data baru tanpa perlu membuka file kembali.
Penutup
Kita telah mempelajari cara membaca dan menulis file dalam bahasa pemrograman Python dengan berbagai mode. Selanjutnya, kamu bisa mempelajari tentang cara parsing data dari file CSV, JSON, dan XML di Python. Jangan ragu untuk bertanya jika ada pertanyaan lebih lanjut. Semoga artikel ini bermanfaat untukmu!