shutil untuk Operasi File
Salin, pindahkan, dan arsipkan file
shutil untuk Operasi File adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
Apa Itu shutil?
Modul shutil (utilitas terminal) menyediakan operasi berkas tingkat tinggi: menyalin, memindahkan, menghapus pohon direktori, dan membuat arsip. Modul ini dibangun di atas os untuk tugas sehari-hari.
import shutil, os
os.makedirs('/tmp/shutil_demo', exist_ok=True)
with open('/tmp/shutil_demo/a.txt', 'w') as f:
f.write('hello')
print('created a.txt')Menyalin Berkas
shutil.copy(src, dst) menyalin isi berkas dan bit izinnya ke lokasi baru.
import shutil, os
os.makedirs('/tmp/shutil_demo', exist_ok=True)
with open('/tmp/shutil_demo/src.txt', 'w') as f:
f.write('data')
shutil.copy('/tmp/shutil_demo/src.txt', '/tmp/shutil_demo/copy.txt')
print(os.path.exists('/tmp/shutil_demo/copy.txt'))copy dan copy2
shutil.copy2 mirip dengan copy, tetapi juga mempertahankan metadata seperti cap waktu. Gunakan ini ketika waktu modifikasi penting.
import shutil, os
os.makedirs('/tmp/shutil_demo', exist_ok=True)
with open('/tmp/shutil_demo/m.txt', 'w') as f:
f.write('x')
shutil.copy2('/tmp/shutil_demo/m.txt', '/tmp/shutil_demo/m2.txt')
print('copied with metadata')Menyalin Seluruh Pohon Direktori
shutil.copytree(src, dst) menyalin seluruh direktori secara rekursif. Tujuan tidak boleh sudah ada (kecuali Anda memberikan dirs_exist_ok=True).
import shutil, os
os.makedirs('/tmp/tree_src/sub', exist_ok=True)
with open('/tmp/tree_src/sub/f.txt', 'w') as f:
f.write('hi')
shutil.rmtree('/tmp/tree_dst', ignore_errors=True)
shutil.copytree('/tmp/tree_src', '/tmp/tree_dst')
print(os.path.exists('/tmp/tree_dst/sub/f.txt'))Memindahkan Berkas dan Folder
shutil.move(src, dst) memindahkan (atau mengganti nama) berkas atau direktori. Ini dapat bekerja lintas sistem berkas, sedangkan os.rename akan gagal.
import shutil, os
os.makedirs('/tmp/move_demo', exist_ok=True)
with open('/tmp/move_demo/old.txt', 'w') as f:
f.write('move me')
shutil.move('/tmp/move_demo/old.txt', '/tmp/move_demo/new.txt')
print(os.path.exists('/tmp/move_demo/new.txt'))Menghapus Pohon Direktori
shutil.rmtree(path) menghapus direktori beserta semua isinya. Gunakan dengan hati-hati; tindakan ini tidak dapat dibatalkan.
import shutil, os
os.makedirs('/tmp/to_delete/inner', exist_ok=True)
shutil.rmtree('/tmp/to_delete')
print('exists after rmtree:', os.path.exists('/tmp/to_delete'))ignore_errors dan Keamanan
Memberikan ignore_errors=True kepada rmtree mencegah program berhenti jika jalurnya tidak ada. Ini berguna untuk pembersihan sebelum menjalankan program dari awal.
import shutil
shutil.rmtree('/tmp/never_existed', ignore_errors=True)
print('no error even though path was absent')Membuat Arsip
shutil.make_archive(base_name, format, root_dir) mengemas sebuah direktori menjadi berkas zip atau tar dalam satu pemanggilan.
import shutil, os
os.makedirs('/tmp/arch_src', exist_ok=True)
with open('/tmp/arch_src/data.txt', 'w') as f:
f.write('archive me')
path = shutil.make_archive('/tmp/my_archive', 'zip', '/tmp/arch_src')
print('created', os.path.basename(path))Mengekstrak Arsip
shutil.unpack_archive(filename, extract_dir) membalikkan proses tersebut dengan mengekstrak berkas zip atau tar ke dalam folder.
import shutil, os
shutil.make_archive('/tmp/box', 'zip', '/tmp/arch_src')
shutil.unpack_archive('/tmp/box.zip', '/tmp/unpacked')
print(os.listdir('/tmp/unpacked'))Mencari Program yang Dapat Dieksekusi
shutil.which(name) mencari lokasi program pada PATH sistem, seperti perintah which pada terminal. Fungsi ini mengembalikan jalur lengkap atau None.
import shutil
print(shutil.which('python3'))
print(shutil.which('definitely_not_a_real_program'))Penggunaan Disk
shutil.disk_usage(path) melaporkan jumlah bita total, yang digunakan, dan yang bebas untuk sistem berkas yang memuat jalur tersebut.
import shutil
usage = shutil.disk_usage('/')
print('total GB:', round(usage.total / 1e9, 1))
print('free GB:', round(usage.free / 1e9, 1))Pemeriksaan Singkat
Uji pemahaman Anda tentang shutil.
Ringkasan
Anda telah mempelajari shutil untuk operasi berkas:
copy/copy2menyalin berkas;copytreemenyalin seluruh pohon direktori.movemengganti nama atau memindahkan;rmtreemenghapus pohon direktori.make_archive/unpack_archivemenangani zip dan tar.whichdandisk_usagemenanyakan informasi sistem.
Kursus berikutnya: membuat alat baris perintah dengan argparse.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “shutil untuk Operasi File” gratis?
Ya — teks lengkap “shutil untuk Operasi File” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “shutil untuk Operasi File”?
Salin, pindahkan, dan arsipkan file Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “shutil untuk Operasi File” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Menjalankan Perintah dengan subprocess
- Menangkap Output
- Lingkungan dan Modul os
- shutil untuk Operasi File