File Handling

Penanganan berkas merupakan bagian penting dari setiap aplikasi web.

Python memiliki beberapa fungsi untuk membuat, membaca, memperbarui, dan menghapus berkas.

Penanganan Berkas

Fungsi utama untuk bekerja dengan berkas di Python adalah fungsi open().

Fungsi open() menggunakan dua parameter; nama berkas dan modus.

Ada empat metode (modus) berbeda untuk membuka berkas:

  • "r" - Baca - Nilai default. Membuka berkas untuk dibaca, kesalahan jika berkas tidak ada.

  • "a" - Tambahkan - Membuka berkas untuk ditambahkan, membuat berkas jika tidak ada.

  • "w" - Tulis - Membuka berkas untuk ditulis, membuat berkas jika tidak ada.

  • "x" - Buat - Membuat berkas yang ditentukan, mengembalikan kesalahan jika berkas ada.

Selain itu Anda dapat menentukan apakah file harus ditangani sebagai mode biner atau teks

  • "t" - Text - Default value. Text mode

  • "b" - Binary - Binary mode (e.g. images)

Syntax

Untuk membuka berkas agar dapat dibaca cukup dengan menentukan nama berkasnya:

f = open("demofile.txt")

Kode di atas sama dengan:

f = open("demofile.txt", "rt")

Karena "r" untuk baca, dan "t" untuk teks adalah nilai default, Anda tidak perlu menentukannya.

Catatan

Pastikan berkas tersebut ada, atau Anda akan mendapatkan pesan kesalahan. Anda perlu menentukannya.

Open a File on the Server

Asumsikan kita memiliki berkas berikut, yang terletak di folder yang sama dengan Python:

#demofile.txt

Hello! Welcome to demofile.txt
This file is for testing purposes.
Good Luck!

Untuk membuka berkas, gunakan fungsi open() bawaan.

Fungsi open() mengembalikan objek berkas, yang memiliki metode read() untuk membaca isi berkas:

f = open("demofile.txt")
print(f.read())

Jika berkas berada di lokasi berbeda, Anda harus menentukan jalur berkas, seperti ini:

f = open("D:\\myfiles\welcome.txt")
print(f.read())

Using the with statement

#Using the with keyword:

with open("demofile.txt") as f:
  print(f.read())

Jadi Anda tidak perlu khawatir tentang menutup berkas Anda, pernyataan with akan mengurusnya.

Close Files

Sebaiknya selalu tutup berkas setelah selesai digunakan.

Jika Anda tidak menggunakan pernyataan with, Anda harus menulis pernyataan close untuk menutup berkas:

#Close the file when you are finished with it:

f = open("demofile.txt")
print(f.readline())
f.close()

Catatan

Anda harus selalu menutup berkas Anda. Dalam beberapa kasus, karena buffering, perubahan yang dibuat pada berkas mungkin tidak terlihat hingga Anda menutupnya.

Read Only Parts of the File

Secara default metode read() mengembalikan seluruh teks, tetapi Anda juga dapat menentukan berapa banyak karakter yang ingin dikembalikan:

#Return the 5 first characters of the file:

with open("demofile.txt") as f:
  print(f.read(5))

Read Lines

Anda dapat mengembalikan satu baris dengan menggunakan metode readline():

#Read one line of the file:

with open("demofile.txt") as f:
  print(f.readline())

Dengan memanggil readline() dua kali, Anda dapat membaca dua baris pertama:

#Read two lines of the file:

with open("demofile.txt") as f:
  print(f.readline())
  print(f.readline())

Dengan melakukan pengulangan pada baris-baris berkas, Anda dapat membaca keseluruhan berkas, baris demi baris:

#Loop through the file line by line:

with open("demofile.txt") as f:
  for x in f:
    print(x)

Write to an Existing File

Untuk menulis ke berkas yang sudah ada, Anda harus menambahkan parameter ke fungsi open():

  • "a" - Tambahkan - akan menambahkan ke akhir berkas

  • "w" - Tulis - akan menimpa konten yang sudah ada

#Open the file "demofile.txt" and append content to the file:

with open("demofile.txt", "a") as f:
  f.write("Now the file has more content!")

#open and read the file after the appending:
with open("demofile.txt") as f:
  print(f.read())

Overwrite Existing Content

Untuk menimpa konten yang ada pada berkas, gunakan parameter w:

#Open the file "demofile.txt" and overwrite the content:

with open("demofile.txt", "w") as f:
  f.write("Woops! I have deleted the content!")

#open and read the file after the overwriting:
with open("demofile.txt") as f:
  print(f.read())

Catatan

metode "w" akan menimpa seluruh berkas.

Create a New File

Untuk membuat berkas baru di Python, gunakan metode open() dengan salah satu parameter berikut:

  • "x" - Buat - akan membuat berkas, mengembalikan kesalahan jika berkas tersebut ada

  • "a" - Tambahkan - akan membuat berkas jika berkas yang ditentukan tidak ada

  • "w" - Tulis - akan membuat berkas jika berkas yang ditentukan tidak ada

#Create a new file called "myfile.txt":

f = open("myfile.txt", "x")
#Result: a new empty file is created.

Catatan

Jika berkas sudah ada, kesalahan akan muncul.

Delete File

Untuk menghapus berkas, Anda harus mengimpor modul OS dan menjalankan fungsi os.remove():

#Remove the file "demofile.txt":

import os
os.remove("demofile.txt")

Check if File exist:

Untuk menghindari kesalahan, Anda mungkin ingin memeriksa apakah berkas tersebut ada sebelum mencoba menghapusnya:

#Check if file exists, then delete it:

import os
if os.path.exists("demofile.txt"):
  os.remove("demofile.txt")
else:
  print("The file does not exist")

Delete Folder

Untuk menghapus seluruh folder, gunakan metode os.rmdir():

#Remove the folder "myfolder":

import os
os.rmdir("myfolder")

Catatan

You can only remove empty folders.