Manipulasi File
Ada beberapa ‘Mode’ yang dapat digunakan yaitu :
Mode | Keterangan |
---|---|
r |
Membuka dan membaca file. Pointer file akan ditempatkan di awal file. Jika pada saat pembukaan file tidak disertakan mdoe manipuasli file, maka mode ini secara default dipakai untuk manipulasi file. |
w |
Membuka dan menulis file. Jika file yang dibuka sudah ada dan menggunakan mode ‘w’, maka file tersebut akan ditimpa. Jika file tidak ada makan akan membuat file baru. |
a |
Membuka dan menambahkan isi file. Pointer file disimpan dibagian akhir file jika file tersebut ada. Jika file tidak ada maka akan dibuatkan file baru. |
b |
Mode ini ditambahkan masing-masing pada mode r , w , dan a , menjadi rb , wb , ab . Dengan menanbahkan mode b maka pembacaan file akan dilakukan dalam format biner. |
+ |
Mode ini ditambahkan kedalam mode r, w, a. |
r+ |
baca dan tulis |
w+ |
tulis dan baca |
a+ |
tambah dan baca |
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
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()
===================RESULT====================
Nama Nilai
=======================
Agus 30
Ganjar 70
Nadya 49
Torres 80
Neymar 40
Ronaldo 69
Messi 80
Nasri 77
Dzeko 90
dengan ‘With’ :
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’
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’
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
===================RESULT====================
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: