← Kembali ke Tutorial Utama

πŸ“ File I/O Python

πŸŽ“ Learn File Operations - Read, Write, JSON, CSV

Daftar Pembelajaran
Bagian 1Buka/Tutup File
Bagian 2Baca File
Bagian 3Tulis File
Bagian 4JSON
Bagian 5CSV
Bagian 6Context Manager
Bagian 7Path & OS
LatihanMini Project
1
Buka & Tutup File

Cara membuka file secara manual dengan open() dan close().

Python
1# Buka file untuk baca
2file = open("data.txt", "r") # "r" = read mode
3
4# ... proses file di sini ...
5
6# wajib tutup!
7file.close()
πŸ’‘ Mode File:
"r" = read (baca) | "w" = write (tulis, overwrite) | "a" = append (tambah)
"rb" = read binary | "wb" = write binary
πŸ“ Contoh lengkap:
Python
1# Buka file teks
2f = open("test.txt", "w")
3f.write("Halo dunia!")
4f.close()
5
6# Baca lagi
7f = open("test.txt", "r")
8content = f.read()
9f.close()
10
11print(content) # Halo dunia!
2
Baca File (Read)

Plusieurs cara membaca isi file.

1. read() - Baca Semua

Python
1f = open("data.txt", "r")
2isi = f.read()
3f.close()
4
5print(isi)

2. readline() - Baca Baris Pertama

Python
1f = open("data.txt", "r")
2baris1 = f.readline()
3baris2 = f.readline()
4f.close()
5
6print(baris1) # baris pertama
7print(baris2) # baris kedua

3. readlines() - Baca Semua jadi List

Python
1f = open("data.txt", "r")
2semua = f.readlines()
3f.close()
4
5# semua jadi list
6for i, baris in enumerate(semua):
7print(f"{i}: {baris}")

4. For Loop - Cara Pythonic

Python
1with open("data.txt", "r") as f:
2for baris in f:
3print(baris.strip()) # strip() hapus enter
3
Tulis File (Write)

Cara menulis/menyimpan data ke file.

1. write() - Tulis Satu Kalimat

Python
1f = open("output.txt", "w") # w = write (hapus semua dulu)
2f.write("Baris pertama")
3f.close()

2. writelines() - Tulis List

Python
1data = ["apel\n", "pisang\n", "jeruk\n"]
2
3f = open("buah.txt", "w")
4f.writelines(data)
5f.close()

3. append() - Tambah Tanpa Hapus

Python
1# a = append (tambah di akhir, tidak overwrite)
2f = open("log.txt", "a")
3f.write("Log baru ditambahkan\n")
4f.close()
⚠️ Peringatan: Mode "w" akan menghapus semua isi file! Gunakan "a" untuk menambah.

4. Contoh Lengkap: Simpan Data Dinamis

Python
1siswa = [
2{"nama": "Budi", "nilai": 85},
3{"nama": "Ani", "nilai": 90},
4]
5
6# Simpan ke file
7with open("siswa.txt", "w") as f:
8for s in siswa:
9f.write(f"{s['nama']},{s['nilai']}\n")
4
JSON File

JSON (JavaScript Object Notation) - format_data populer untuk simpan data structured.

Install JSON (sudah Built-in)

Tidak perlu install, cukup import:

Python
1import json

1. dump() - Simpan JSON ke File

Python
1data = {
2"nama": "Dani",
3"usia": 25,
4"hobi": ["coding", "musik"]
5}
6
7# Simpan ke file JSON
8with open("data.json", "w") as f:
9json.dump(data, f, indent=2)

2. load() - Baca JSON dari File

Python
1# Baca dari file JSON
2with open("data.json", "r") as f:
3data = json.load(f)
4
5print(data["nama"]) # Dani
6print(data["hobi"]) # ['coding', 'musik']

3. dumps() - JSON ke String

Python
1data = {"status": "ok"}
2
3# convert ke string JSON
4json_str = json.dumps(data)
5
6print(json_str) # {"status": "ok"}

4. loads() - String ke Dict

Python
1json_str = '{"status": "ok"}'
2
3# convert string ke dict
4data = json.loads(json_str)
5
6print(data["status"]) # ok
5
CSV File

CSV (Comma Separated Values) - format spreadsheet.

Install csv

csv juga sudah built-in:

Python
1import csv

1. writerow() - Tulis Baris CSV

Python
1with open("siswa.csv", "w", newline="") as f:
2writer = csv.writer(f)
3
4# Header
5writer.writerow(["Nama", "Nilai", "Kelas"])
6
7# Data
8writer.writerow(["Budi", "85", "XII-A"])
9writer.writerow(["Ani", "90", "XII-A"])

2. reader() - Baca CSV

Python
1with open("siswa.csv", "r") as f:
2reader = csv.reader(f)
3
4# Skip header
5header = next(reader)
6
7# Baca semua data
8for row in reader:
9print(row) # ['Budi', '85', 'XII-A']

3. DictWriter - Simpan dengan Nama Kolom

Python
1with open("anggota.csv", "w", newline="") as f:
2fieldnames = ["nama", "email"]
3writer = csv.DictWriter(f, fieldnames=fieldnames)
4
5writer.writeheader()
6writer.writerow({"nama": "Budi", "email": "budi@email.com"})
7writer.writerow({"nama": "Ani", "email": "ani@email.com"})
6
Context Manager (with)

Context manager with adalah cara aman & pythonic untuk buka file.

βœ… Keuntungan with:
- Auto close file Π΄Π°ΠΆΠ΅ jika ada error
- Kode lebih bersih
- Tidak perluζ‰‹εŠ¨ close()

Syntax with

Python
1with open("file.txt", "r") as file:
2# proses file
3isi = file.read()
4
5# file sudah ditutup otomatis di sini

Contoh with untuk JSON

Python
1import json
2
3# Baca JSON
4with open("config.json") as f:
5config = json.load(f)
6
7# Tulis JSON
8with open("config.json", "w") as f:
9json.dump(config, f, indent=2)

Multiple Files

Python
1# Buka banyak file sekaligus
2with open("input.txt") as a, \
3 open("output.txt", "w") as b:
4b.write(a.read().upper())
7
Path & OS Module

Kelola path file dan direktori dengan OS module.

OS Module - Operasi File

Python
1import os
2
3# Cek apakah file ada
4print(os.path.exists("data.txt")) # True/False
5
6# Hapus file
7os.remove("data.txt")
8
9# Rename file
10os.rename("lama.txt", "baru.txt")

OS Module - Direktori

Python
1import os
2
3# Buat folder
4os.mkdir("folder_baru")
5
6# Daftar isi folder
7files = os.listdir(".")
8print(files)
9
10# Ambil path sekarang
11print(os.getcwd()) # current working directory

Pathlib - Cara Modern

Python
1from pathlib import Path
2
3# Buat path object
4p = Path("data/file.txt")
5
6# Cek ada
7print(p.exists())
8
9# Nama file
10print(p.name) # file.txt
11print(p.stem) # file
12print(p.suffix) # .txt
13print(p.parent) # data/