Membaca File dan Memasukkan Data Kedalam List Python
File yang Akan Dibuka
Python mampu membuka semua jenis file selama itu tidak terenkripsi. Atau gampangnya file jika file bisa dibuka menggunakan aplikasi semacam notepad, maka file tersebut juga bisa dibuka pada python.
Yang membedakan adalah struktur file didalamnya. Hal ini nantinya akan berpengaruh pada proses pembacaan file.
Misalnya contoh file "data.txt" yang isinya seperti ini:
Data di atas memiliki 3 kolom yang dipisahkan oleh spasi " ". Pemisah ini penting, karena akan digunakan untuk memisahkan kolom data tanpa perlu mengetahui berapa jumlah kolomnya.
Membuka File dengan Metode Open()
open() adalah metode python yang digunakan untuk membuka file. File yang dibuka dengan metode ini akan menjadi input output object. Object tersebut nantinya bisa dibaca, diisi dengan sesuatu, atau sebagainya, tergantung perintah yang dimasukkan ketika menginisiasi metode tersebut.
Selanjutnya, kita buka file *.txt dengan nama "data.txt".
file = open("data.txt", "r")
"data.txt" adalah nama file yang akan dibuka. Nama file selalu ditulis sebagai string atau menggunakan tanda petik (" "). Setelah tanda koma ada "w" yang merupakan singkatan dari "read". Huruf tersebut menunjukkan apa yang akan dilakukan terhadap file tadi, yaitu membacanya.
Membaca Keseluruhan Data Menggunakan Loop for
Untuk memudahkan pembacaan seluruh baris data, python memiliki sebuah fitur loop menggunakan for. Berikut ini adalah script untuk membaca seluruh baris data.
for i in file:
print(i)
out:
Udin Karyawan Bandung
Ajat Karyawan Tasikmalaya
Aziz Dokter Bandung
Mulki Jaksa Jakarta
Odon Wiraswasta Cirebon
Selamet Wiraswasta Tegal
for i in file artinya variabel i akan terisi dengan data satu baris pada setiap perulangannya. "Udin Karyawan Bandung" adalah baris pertama, kemudian berulang membaca seluruh baris file hingga "Selamet Wiraswasta Tegal" pada baris terakhir.
Teknik ini akan membaca satu baris data menjadi satu string. Padahal, satu baris data terdiri dari tiga kolom, yang kurang lebih berisi Nama, Pekerjaan, dan Kota Asal, yang masing-masing dipisahkan dengan spasi " ".
Membagi Baris Data yang Terbaca Menjadi Beberapa Kolom
Untuk itu, data string tersebut harus dipisahkan menjadi data kolom. Proses ini dapat dilakukan menggunakan metode .split(). Metode ini digunakan pada variabel yang memuat baris data, pada kasus ini adalah variabel i.
Pemilihan pemisah kolom atau separator lumrah digunakan banyak software. Seperti excel pun akan menanyakan separator data jika kita menggunakan fitur text to column.
Untuk string python sendiri menggunakan syntax variabel.split("separator"), seperti contoh di bawah ini.
for i in file:
print(i.split(" "))
out:
['Udin', 'Karyawan', 'Bandung\n']
['Ajat', 'Karyawan', 'Tasikmalaya\n']
['Aziz', 'Dokter', 'Bandung\n']
['Mulki', 'Jaksa', 'Jakarta\n']
['Odon', 'Wiraswasta', 'Cirebon\n']
['Selamet', 'Wiraswasta', 'Tegal']
Metode separator di atas menggunakan .split(" "). Sesuai dengan datanya, baris tersebut terpisah menjadi 3 kolom yang tersimpan dalam sebuah list. Dengan begini, tidak perlu repot-repot memasukkan data yang sudah di split ke dalam list. Tinggal memasukkan list yang berisi 3 kolom data ke list utama.
Tapi tunggu dulu, ternyata di data terakhir tiap list ada tambahan "\n". Karakter ini adalah simbol <enter>. Karena setiap akhir baris pasti pindah ke baris baru dengan menekan enter, maka enter terbaca sebagai "\n". Kecuali memang datanya dijadikan semua satu baris, tapi kan ga mungkin kayak gitu.
Untuk itu, sebelum di split, karakter "\n" harus di remove terlebih dahulu.
Meremove Karakter "\n" Pada String
Untungnya, string pada python memiliki metode .replace() untuk mengganti karakter tertentu pada string dengan karakter yang lain. Syntax nya seperti ini variabel.remove("karakter awal", "karakter pengganti").
Karena kita ingin menghapus karakter, "karakter pengganti" bisa diisi dengan string kosong "". Jika diaplikasikan pada script jadi seperti di bawah ini:
for i in file:
i = i.replace("\n", "")
print(i.split(" "))
out:
['Udin', 'Karyawan', 'Bandung']
['Ajat', 'Karyawan', 'Tasikmalaya']
['Aziz', 'Dokter', 'Bandung']
['Mulki', 'Jaksa', 'Jakarta']
['Odon', 'Wiraswasta', 'Cirebon']
['Selamet', 'Wiraswasta', 'Tegal']
Proses penghapusan "\n" dilakukan pada baris kedua. Pada baris tersebut digunakan i = i.replace() bukan hanya i.replace(). Jika hanya menggunakan i.replace(), string di dalam variabel i tidak akan berubah dan akan kembali seperti semula.
setelah karakter "\n" dihapus kemudian di .split(), akhirnya muncul list yang isinya data sesuai dengan yang ada pada file "data.txt".
Langkah selanjutnya adalah menyatukan kumpulan list tersebut menjadi satu list data.
Menyatukan Data Menjadi Satu List
Untuk menyatukan semuanya menjadi list, digunakan cara seperti ini:
data = []
for i in file:
i = i.replace("\n", "")
data.append(i.split(" "))
print(data)
out:
[['Udin, Karyawan, Bandung'],
['Ajat, Karyawan, Tasikmalaya'],
['Aziz, Dokter, Bandung'],
['Mulki, Jaksa, Jakarta'],
['Odon, Wiraswasta, Cirebon'],
['Selamet, Wiraswasta, Tegal']]
baris pertama data = [] adalah menginisasi sebuah variabel "data" yang berisi list kosong. List ini nantinya akan diisi dengan list yang terkandung pada variabel i.
Proses penambahan list i ke dalam data dilakukan pada baris ke tiga dengan metode data.append(i.split(" ")). .append() adalah sebuah metode dari object list yang digunakan untuk menambahkan item ke dalamnya.
Pada baris tersebut, terjadi proses penambahan string yang sudah di split menjadi sebuah list yang terdiri dari tiga data.
Memanggil Data Pada List
Setelah menjadi satu pada variabel data, baris tertentu dari data tersebut dapat dipanggil. Misal contoh di bawah ini memanggil data pada baris ke-2.
data[1]
out:
['Ajat, Karyawan, Tasikmalaya']
Script Utuh
Demikian penjelasan untuk proses membaca dan memasukkan data ke dalam list python. Berikut ini adalah script lengkap untuk proses tersebut.
file = open("data.txt", "r")
data = []
for i in file:
i = i.replace("\n", "")
data.append(i.split(" "))
Tanya bang, kalo ada file txt isinya biodata ditulis menurun.
BalasHapusNama: asep
Rumah: Bandung
Umur: 30
Nama: Joko
Rumah: Bogor
Umur: 45
Cara mengubah ke dalam data kolom gimana ya bang ? dengan hedaer kolom1 Nama, kolom2 Rumah dan kolom3 umur. Tks