0Pricing
Python Academy · Pelajaran

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/copy2 menyalin berkas; copytree menyalin seluruh pohon direktori.
  • move mengganti nama atau memindahkan; rmtree menghapus pohon direktori.
  • make_archive/unpack_archive menangani zip dan tar.
  • which dan disk_usage menanyakan 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

  1. Menjalankan Perintah dengan subprocess
  2. Menangkap Output
  3. Lingkungan dan Modul os
  4. shutil untuk Operasi File
← Kembali ke Python Academy