
Basic Python series kali ini akan membahas sedikit tentang Read & Write atau Membaca dan menulis ke File di Python. Kegunaanya banyak tentunya dan mungkin nanti akan terus bersentuhan dengan fungsi ini.
Seperti pada umumnya, ada beberapa 'Mode' yang dapat digunakan yaitu :
- 'r' : file hanya untuk dibaca saja
- 'w' : hanya untuk menulis ke file ( file dgn yg sudah ada sebelumnya dan mempunyai nama sama akan dihapus)
- 'a' : menulis ke file dimana data baru akan otomatis masuk ke akhir baris (appending)
-
'r+' : Buka file untuk dibaca maupun ditulis
Sebelumnya coba buat 1 buah file misal file.txt , isinya :
Agus 30 Ganjar 70 Nadya 49 Torres 80 Neymar 40 Ronaldo 69 Messi 80 Nasri 77 Dzeko 90
1. Baca File
Ada 2 cara umum yang dipakai untuk membaca File yaitu dengan cara biasa dan dengan 'With' statement.
Contoh Dengan cara biasa :
def read_file():
# 'r' default-optional, jika tidak diisi, maka otomatis r
f = open('file.txt','r')
ct = f.read().splitlines()
print "Nama %6s Nilai" % " "
print "======================="
for n in ct:
line = n.split(' ')
print line[0],line[1].rjust(15-len(line[0])," ")
# syntax rjust diatas hanya spasi saja
f.close()
Coba jalankan kodenya, Outputnya seperti ini :
Nama Nilai ======================= Agus 30 Ganjar 70 Nadya 49 Torres 80 Neymar 40 Ronaldo 69 Messi 80 Nasri 77 Dzeko 90
Bila dengan 'With', contoh kodenya :
def read_file_with():
print "Nama %6s Nilai" % " "
print "======================="
with open('file.txt','r') as f:
ct = f.read().splitlines()
for n in ct:
line = n.split(' ')
print line[0],line[1].rjust(15-len(line[0])," ")
Kode dengan 'With' diatas akan menghasilkan output yang sama tapi tentunya dengan kode yang lebih enak dibaca dan juga tidak perlu menambahkan f.close() untuk tutup file karena sudah otomatis ditutup jika pakai 'With'
2. Tulis ke-File
Untuk menulis ke file ini harus agak hati-hati terutama saat menentukan 'Mode'. Misal file.txt diatas yang sudah ada isinya, jika menggunakan Mode 'w' maka akan di Overwrite dengan yang baru jadi isi sebelumnya hilang. Jika ingin menambah baris baru, harus memakai Mode 'a'
Contoh kodenya
def write_file():
f = open("file.txt","a")
f.write("Jahrut 89\n") #\n untuk baris baru
f.write("Memet 78\n")
f.close()
Output nya akan bertambah 2 baris menjadi
Nama Nilai ======================= Agus 30 Ganjar 70 Nadya 49 Torres 80 Neymar 40 Ronaldo 69 Messi 80 Nasri 77 Dzeko 90 Jahrut 89 Memet 78
Wrap it all
Bagi yang mau mencoba sebaiknya kita kumpulkan kode diatas kedalam 1 file misal test.py
def read_file():
f = open('file.txt','r')
ct = f.read().splitlines()
print "Nama %6s Nilai" % " "
print "======================="
for n in ct:
line = n.split(' ')
print line[0],line[1].rjust(15-len(line[0])," ")
f.close()
def read_file_with():
print "Nama %6s Nilai" % " "
print "======================="
with open('file.txt','r') as f:
ct = f.read().splitlines()
for n in ct:
line = n.split(' ')
print line[0],line[1].rjust(15-len(line[0])," ")
def write_file():
f = open("file.txt","a")
f.write("Jahrut 89\n")
f.write("Memet 78\n")
f.close()
if __name__ == '__main__':
read_file() #silahkan ganti-ganti sesuai fungsi yg mau di coba
Happy learning !