Skip to main content

Cara Baca dan Tulis File Dengan Python

cara baca dan tulis file dengan python

Dalam membuat suatu aplikasi, mungkin kita perlu menyimpan suatu data yang pada masa depan akan dibutuhkan kembali. Untuk menyimpan data tersebut, dapat disimpan dalam bentuk file dan juga dalam bentuk tabel dalam database, atau menggunakan variabel. Untuk data yang sederhana, kita bisa memilih menyimpannya dalam bentuk file teks .txt, .csv, atau bisa juga dalam spreadsheet (.xlsx atau .odt). Sekarang kita akan mempelajari cara melakukan baca dan tulis file dengan python untuk file .txt. File lainnya seperti spreadsheet membutuhkan modul/paket tambahan.

Pada saat menjalankan sebuah program di python, dapat juga menyimpan data dalam bentuk variabel. Hanya saja data yang disimpan dalam variabel tidak permanen. Karena saat keluar dari program, data yang disimpan dalam variabel akan hilang alias tidak disimpan (dihapus). Maka dengan melakukan baca dan tulis file, akan memudahkan untuk mengakses data kemudian hari.

Cara membaca dan menulis file di python, program ini sudah pernah dipraktikkan saat kita membuat aplikasi teks editor beberapa waktu yang lalu. Dan kita akan melihatnya dari sudut yang berbeda. Dan dalam aplikasi ini, saya tidak membuat GUI. Karena kita sudah membuat GUI-nya pada tulisan itu menggunakan Tkinter.

File atau berkas yang akan kita oleh ini berisi teks, data berupa teks ini sederhana sekali. Maka kita akan menyimpan data tersebut kedalam sebuah file txt. Untuk variabel yang berisi data teks panjang, jika ingin membuatnya dalam beberapa baris maka gunakan \n untuk membuat baris baru. Kode tersebut ketika di print akan menghasilkan baris baru.

Back to top

1) Membuat File

Pertama kali kita akan membuat sebuah file .txt menggunakan open() dan w sebagai parameternya. Dengan kode seperti ini tulis = open('nama-file.txt', 'w'). Dan kode ini akan membuat file baru jika belum ada dan akan menghapus file lama kemudian mengganti dengan yang baru kalau ternyata file sudah ada dengan method .write().

Sekarang mari coba membuat programmnya

>>> tulis = open('angka.txt', 'w')
>>> n = 1
>>> for i in range(2, 50):
...     n +=1
...     tulis.write(str(n) + '\n')
>>> tulis.close()

Sebagai penutuh kode jangan lupa dengan .close() untuk menulis outputnya menjadi sebuah file.

Back to top

2) Membuka file .txt

Oke, setelah tadi membuat sebuah file bernama angka.txt, mari sekarang membuka file tersebut yang seperti apa isinya hasil dari program yang dibuat tadi.

Melakukan perintah ini pada folder yang sama dengan lokasi file angka.txt supaya python tidak bingung dan dapat mudah menemukan filenya. Kalau lokasi folder berbeda, maka tulis path secara lengkap. buka = open('angka.txt').

Untuk file yang berbeda lokasi, tulis path secara lengkap. Misalnya buka = open('/home/user/file-saya.txt'). Baris kode ini akan membuka file bernama file-saya.txt yang berada di folder /home/user.

Kalau file yang dimaksud tidak ditemukan, maka python akan menampilkan pesan error seperti ini

>>> buka = open('tidak-ada-file.txt')
Traceback (most recent call last):
  File "", line 1, in 
FileNotFoundError: [Errno 2] No such file or directory: 'tidak-ada-file.txt'

Kita juga bisa menggunakan input() tujuannya agar pengguna program dapat menuliskan nama file yang mereka inginkan, agar program menjadi interaktif. Misalnya seperti berikut

nama = input('File yang akan dibuka : ')
fread = open(nama)

Agar tampilan pesan errornya lebih mudah dimengerti, dapat juga menggunakan exception seperti ini

>>> try:
...     fread = open(nama)
... except:
...     print('File tidak ada')
...

Sampai disini kita sudah membuka file angka.txt. Kode open() tidak memiliki perbedaan waktu membuka antara file yang besar dan file yang kecil. Waktu yang dibutuhkan untuk membuka file selalu sama.

Back to top

3) Membaca File

Membuka file berbeda dengan membaca isi file, karena itu fungsi open() membutuhkan waktu yang sama antara membuka file besar dan file kecil. Sekarang kita akan coba dengan kode print(buka), mari buat dari awal.

buka = open('angka.txt')
print(buka)

Setelah menjalankan kode program di atas, ternyata hasil outputnya seperti ini

<_io.TextIOWrapper name='angka.txt' mode='r' encoding='UTF-8'>

Buka isi file yang keluar, tapi malah sesuatu yang disebut File Handle, ok mari kita coba dengan yang satu ini.

buka = open('angka.txt')
count = 0
for i in buka:
     count +=1
 
print(count)

Keluar hasil 48, baris kode di atas adalah untuk menghitung jumlah baris yang ada di dalam file angka.txt. Semua baris yang ada isinya maupun yang kosong tetap akan dihitung, sekarang coba untuk memodifikasi agar hanya menghitung barus yang tidak kosong saja. Dalam contoh ini buatlah sebuah file berisi teks beberapa baris dan buat juga baris yang kosong agar mudah dipahami.

Saya membuat file bernama teks.txt yang berisi 3 baris, satu baris yang kedua adalah kosong. Untuk menghitung seluruh baris menggunakan kode program di atas, hanya ganti nama file saja. Kemudian untuk menghitung baris yang tidak kosong, gunakan kode di bawah ini yang sudah ditambah dengan .strip() yang gunanya untuk menghapus karakter \n

buka = open('teks.txt')
count = 0
for i in buka:
     if len(i.strip()) > 0 :
	count +=1
 
print(count)

Perbedaan outpun pada kode sebelumnya, ketika saya menjalankan kode sebelumnya hasilnya adalah 3 dan setelah menjalankan perintah ke dua, hasilnya adalah 2.

Baik, kalau tadi kita hanya menghitung baris saja. Sekarang kita akan menampilkan isi dari file. Dengan menambahkan 'r'. Seperti ini

buka = open('angka.txt', 'r')
buka.read()

'2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49'

Itu adalah isi file angka.txt yang sudah kita buat tadi pada awal tulisan ini. Kalau keluarannya seperti itu, apakah mudah untuk dibaca? Agar lebih manusiawi tambahkan .readline() menjadi seperti ini buka.readline()

Parameter optional yang tersedia dalam melakukan baca dan tulis file dengan python open().

  • 'r' : Untuk membaca file
  • 'w' : Untuk menulis file
  • 'x' : Untuk membaca dan menulis file baru
  • 'a' : Untuk menambahkan sesuatu kedalam file
  • 'r+' : Untuk membaca dan menulis pada file yang sama

Dalam penulisannya open('nama file', 'parameter'), kalau hanya ingin membaca saja gunakan parameter 'r', ingin menambahkan baris gunakan 'a' dan seterusnya. Kemudian jangan lupa untuk menutup file dengan .close()

Back to top

4) Baca dan Tulis File Dengan Python

Setelah mempelajari bagian-bagian tentang cara baca dan tulis file dengan python, mari kita mencoba program lengkap. Contoh ini saya membuat nama-nama hari. Buat sebuah file bernama hari.txt yang berisi nama-nama hari seperti ini.

Senin
Selasa
Rabu
Kamis
Jumat
Sabtu
Ahad

Dari file hari.txt dengan menggunakan python saya mencoba menulis ulang isi file ke file baru bernama hari-baru.txt ini sekaligus contoh melakukan baca dan tulis file dengan python.

path = '/home/edi/hari.txt'
file_hari = open(path, 'r')
hari_hari = file_hari.read()

path_baru = '/home/edi/hari-baru.txt'
hari_baru = open(path_baru, 'w')

title = 'Hari dalam sepekan\n'
hari_baru.write(title)
print(title)

hari_baru.write(hari_hari)
print(hari_hari)

hari_baru.close()

Kode program ini disimpan dengan nama file.py lalu jalankan pada terminal dengan perintah python3 file.py. Keluaran yang saya dapatkan adalah seperti ini

[email protected]:~$ python3 files.py
Hari dalam sepekan

Senin
Selasa
Rabu
Kamis
Jumat
Sabtu
Ahad

Kemudian isi dari file yang barusan dibuat yaitu file bernama hari-baru adalah seperti ini

Hari dalam sepekan
Senin
Selasa
Rabu
Kamis
Jumat
Sabtu
Ahad
Back to top

5) Kesimpulan

Program berhasil dijalankan dengan tanpa error. Program sederhana ini telah berhasil melakukan seperti apa yang saya inginkan, yaitu membuka file bernama hari.txt yang berada dilokasi folder /home/edi yang disimpan dalam variabel path. Lalu menuliskan kembali isinya kedalam file baru yang bernama hari-baru.txt. Saya juga menentukan lokasi penulisannya berada di lokasi yang sama menggunakan variabel path_baru dengan tambahan title.

Mudah sekali cara melakukan baca dan tulis file dengan python. Kalau ada yang belum jelas, silahkan ajukan pertanyaan pada kolom komentar di bawah ini. Selamat Belajar Python

Back to top