Manajemen File menggunakan Python
Manajemen File menggunakan Python sangat penting untuk memudahkan kita dalam melakukan otomatisasi file seperti pengecekan direktori kerja, membuat direktori/folder, cek keberadaan file. Bahkan saya sering menggunakan python untuk melakukan tersebut jauh lebih baik daripada menggunakan file explorer bawaan windows, pernah suatu kali saya menghapus ratusan ribu file lebih cepat menggunakan python lho! hal ini dikarenakan bila menggunakan file explorer diperlukan mekanisme recycle bin jadi agak lama prosesnya. OK langsung saja, saya akan bahas beberapa perintah manajemen file menggunakan Python yang sering digunakan dalam kegiatan sehari-hari.
1. Mengetahui direktori aktif
Contents
Perintah ini seringkali saya gunakan untuk mengecek posisi work directory yang sedang saya gunakan. Kita tidak perlu install library pihak ketiga untuk manajemen file menggunakan python, namun cukup dengan import os saja seperti berikut
import os print(os.getcwd())
hasilnya, posisi diatas ada di D:/
2. Mengubah direktori aktif
Kita juga bisa mengubah direktori kerja menggunakan perintah
os.chdir("E:/")
Tapi apa yang terjadi ketika melakukan change directory tapi direktori tersebut tidak ada! Misalkan os.chdir(“P:/”)
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'P:/'
3. Cek Keberadaan file dan folder
Nggak ingin kecewa bukan? kalau-kalau file / folder tidak ada! maka kalian bisa melakukan cek exists terlebih dahulu, misalkan saya akan cek sebuah folder/direktori di D:/
ada = os.path.exists('D:/ini folder') print(ada)
akan menghasilkan True bila ada, kalau untuk cek file juga sama perintahnya koq
ada = os.path.exists("D:/latihan1.py") print(ada)
4. Join Separator
Kalian pernah menggunakan sistem operasi selain windows? seperti linux. Perbedaan jelas yaitu pada operator pemisahan path yaitu menggunakan tanda / sedangkan windows menggunakan \
Perhatikan lokasi path berikut (menggunakan windows),
D:/latihan1.py
Hal diatas sebenarnya kurang direkomendasikan, sebaiknya menggunakan perintah
os.path.join('D:', 'latihan1.py')
atau lebih lengkapnya seperti berikut untuk cek keberadaan file
path = os.path.join('D:', 'latihan1.py') ada = os.path.exists(path) print(ada)
5. Buat direktori atau folder
Untuk membuat direktori, caranya sangat mudah, cukup dengan perintah berikut
os.mkdir("D:/test_dir")
Namun perintah diatas harus dilakukan hati-hati karena bisa saja terjadi konflik dimana folder tersebut sudah ada sebelumnya, oleh hal tersebut sebaiknya dicek dulu menggunakan perintah exist
if not os.path.exists("D:/test_dir"): os.mkdir("D:/test_dir")
6. Membuat folder didalam folder
Misalkan kita akan membuat folder didalam sebuah folder dan begitu seterusnya, maka perintah yang digunakan seperti berikut
os.makedirs(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))
7. Mengetahui isi directori
Untuk mengetahui isi direktori ada 2 cara yang bisa kita gunakan yaitu
os.listdir("sample_data/*.csv")
atau menggunakan library blob
from glob import glob list(glob(os.path.join('sample_data', '*.csv')))
Perbedaan diantar keduanya adalah ketika menggunakan cara pertama, hanya akan mengembalikan file *.csv tanpa ada alamat lengkap pathnya sedangkan untuk cara kedua akan mengembalikan detail alamat lengkap.
8. Pindah / cut file
Untuk memindahkan file, kita menggunakan library shutil
import shutilfor file in list(glob(os.path.join('sample_data', '*.csv'))): shutil.move(file, 'test_dir')
9. Copy File
Seperti cut file, maka untuk melakukan copy, gunakan saja library shutil, Misalkan seperti berikut untuk mengcopy file README.md
shutil.copy( os.path.join('sample_data','README.md'), os.path.join('test_dir') )
10. Hapus File dan Folder/Directori
Untuk menghapus file dan direktori berbeda caranya lho. Misalkan untuk hapus file tertentu, gunakan perintah berikut
os.remove(os.path.join('test_dir', 'README.md'))
Sedangkan untuk delete/hapus folder maka harus kosong terlebih dahulu isi folder tersebut
os.rmdir(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))
Namun bila ingin hapus segala file didalam sebuah folder, kalian bisa gunakan perintah berikut
shutil.rmtree(os.path.join('test_dir', 'level_1'))
maka secara otomatis folder level_2 dan level_3 akan terhapus
ref: https://towardsdatascience.com/8-must-know-file-system-operations-in-python-7dc185daeccd