Lesson text file menggunakan Python akan membahas cara membuka, membaca dan menulis file text. Topik ini dibahas karena pada praktek NLP akan cukup sering mengakses eksternal file dengan format teks.
Perhatian, bagian komentar pada baris program adalah untuk menunjukan return dari perintah yang dijalankan. Bukan bagian dari program.
Membuka File Teks – Mode Read
Untuk membuka file teks gunakan perintah open. Pastikan nama file dan path sudah tepat. Jika parameter mode tidak didefinisikan, maka default adalah mode read.
# jika dalam direktori yang sama, path dapat diabaikan
myfile = open("test.txt")
# contoh menggunakan full path pada windows
myfile = open("d:\\learning\\NLP\\test.txt")
# contoh menggunakan full path pada linux dan macOS
myfile = open("/learning/NLP/test.txt")
Jika myfile dipanggil, maka akan mengembalikan informasi objek myfile. Kita bisa melihat informasi seperti nama file, mode file seperti pada contoh dibawah adalah “r”, yaitu mode read.
<_io.TextIOWrapper name='test.txt' mode='r' encoding='cp1252'>
Membaca Isi File Teks
Untuk membaca isi file teks, gunaka method read(). Python menggunakan sistem cursor. Saat file teks dibuka, cursor akan berada diawal file. Setelah melakukan perintah read, cursor akan berada di eof (end of file).
Jika perintah read kembali diulangi, maka return yang diperoleh adalah empty string ”, karena cursor berada di eof. Oleh karena itu, untuk memanipulasi isi file, kita perlu menyimpan dalam variable terlebih dahulu.
Untuk mengembalikan cursor ke posisi awal file gunakan perintah seek(0).
myfile.read() # 'Halo ini contoh file text.\nIni adalah baris kedua.' myfile.read() # '' myfile.seek(0) # mengembalikan cursor ke posisi awal file. doc = myfile.read() print(doc) # Halo ini contoh file text. # Ini adalah baris kedua.
Python juga menyediakan perintah readlines() untuk membaca isi file perbaris dan menyimpan dalam list of strings.
mylines = myfile.readlines()
for line in mylines:
print(line)
# Halo ini contoh file text.
# Ini adalah baris kedua.
mylines
# ['Halo ini contoh file text.\n', 'Ini adalah baris kedua.']
Menulis Kedalam File Text
Untuk menulis kedalam file, dapat menggunakan mode write. Jika file tidak ada, maka file baru akan dibuat.
- ‘w+’ : Dapat menulis dan membaca file.
- ‘w’ : Hanya menulis file.
Perhatian mode w akan menghapus isi file (jika ada). Lihat pada perintah read(), akan mengembalikan empty string. Isi file terdahulu sudah dibuang.
Untuk menulis kedalam file gunakan perintah write(). Perhatian, posisi cursor akan di eof setelah perintah write. Jika ingin membaca isi file, perlu mengembalikan cursor ke awal file.
myfile = open("test.txt", "w+")
myfile.read()
# ''
myfile.write('Ini teks yang baru dibuat')
# 25
myfile.seek(0)
# 0
myfile.read()
#'Ini teks yang baru dibuat'
Menambah Isi File Text
Jika pada mode write isi file terdahulu dibuang, dengan mode append, isi file terdahulu tidak akan dibuang. Jika file tidak ada, maka file baru akan dibuat.
myfile = open("test.txt", "a+")
myfile.write('\nini hasil append')
# 17
myfile.seek(0)
# 0
myfile.read()
# 'Ini teks yang baru dibuat\nini hasil append'
myfile.seek(0)
print(myfile.read())
# Ini teks yang baru dibuat
# ini hasil append
- ‘a+’ : menambah dan membaca isi file.
- ‘a’ : hanya menambah isi file.
String pada perintah write menggunakan escape \n agar teks disimpan dibaris berikutnya. Pada perintah print, output akan ditampilkan dalam 2 baris teks. Jika ingin dalam satu baris, tidak perlu menambahkan escape newline (\n).
Menutup File
Hal penting lainnya adalah setelah membuka file, jangan lupa untuk menutupnya. Dengan menggunakan perintah close().
Pendekatan lain adalah dengan menggunakan context manager. Dengan menggunakan block with, kita tidak perlu menutup file, karena akan otomatis dilakukan oleh context manager.
#eksplisit closing file.
myfile.close()
#menggunakan context manager
with open('test.txt', 'r') as myfile:
myvar = myfile.readlines()