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 : 

  1. 'r'  : file hanya untuk dibaca saja
  2. 'w' : hanya untuk menulis ke file ( file dgn yg sudah ada sebelumnya dan mempunyai nama sama akan dihapus)
  3. 'a'  : menulis ke file dimana data baru akan otomatis masuk ke akhir baris (appending)
  4. '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 !