Dosya İşlemleri için shutil
Dosyaları kopyalayın, taşıyın ve arşivleyin
Dosya İşlemleri için shutil, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
shutil Nedir?
shutil (kabuk yardımcı programları) modülü, kopyalama, taşıma, dizin ağaçlarını silme ve arşiv oluşturma gibi üst düzey dosya işlemleri sunar. Günlük görevler için os modülünü temel alır.
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')Dosya Kopyalama
shutil.copy(src, dst), bir dosyanın içeriğini ve izin bitlerini yeni bir konuma kopyalar.
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 ve copy2 Karşılaştırması
shutil.copy2, copy gibidir; ancak zaman damgaları gibi üst verileri de korur. Değiştirilme zamanlarının korunması önemli olduğunda bunu kullanın.
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')Tüm Dizin Ağacını Kopyalama
shutil.copytree(src, dst), bir dizinin tamamını özyinelemeli olarak kopyalar. dirs_exist_ok=True iletmediğiniz sürece hedef zaten var olmamalıdır.
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'))Dosya ve Klasörleri Taşıma
shutil.move(src, dst), bir dosyayı veya dizini taşır ya da yeniden adlandırır. os.rename işlevinin başarısız olacağı dosya sistemleri arasında da çalışır.
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'))Dizin Ağacını Silme
shutil.rmtree(path), bir dizini ve içindeki her şeyi kaldırır. Dikkatli kullanın; geri alma işlemi yoktur.
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 ve Güvenlik
rmtree işlevine ignore_errors=True iletmek, yol eksik olduğunda programın çökmesini önler. Bu, yeni bir çalıştırma öncesinde temizlik yapmak için kullanışlıdır.
import shutil
shutil.rmtree('/tmp/never_existed', ignore_errors=True)
print('no error even though path was absent')Arşiv Oluşturma
shutil.make_archive(base_name, format, root_dir), bir dizini tek bir çağrıyla zip veya tar dosyası hâlinde paketler.
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))Arşivden Çıkarma
shutil.unpack_archive(filename, extract_dir), işlemi tersine çevirerek bir zip veya tar arşivini klasöre açar.
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'))Çalıştırılabilir Dosyaları Bulma
shutil.which(name), kabuğun which komutu gibi sistem PATH değişkeninde bir programın konumunu bulur. Tam yolu veya Yok değerini döndürür.
import shutil
print(shutil.which('python3'))
print(shutil.which('definitely_not_a_real_program'))Disk Kullanımı
shutil.disk_usage(path), yolun bulunduğu dosya sistemi için toplam, kullanılan ve boş bayt miktarlarını bildirir.
import shutil
usage = shutil.disk_usage('/')
print('total GB:', round(usage.total / 1e9, 1))
print('free GB:', round(usage.free / 1e9, 1))Kısa Test
shutil konusundaki anlayışınızı test edin.
Özet
Dosya işlemleri için shutil kullanmayı öğrendiniz:
copy/copy2dosyaları kopyalar;copytreetüm dizin ağaçlarını kopyalar.moveyeniden adlandırır veya başka bir konuma taşır;rmtreedizin ağaçlarını siler.make_archive/unpack_archivezip ve tar arşivlerini yönetir.whichvedisk_usagesistemi sorgular.
Sonraki kurs: argparse ile komut satırı araçları oluşturma.
Sıkça Sorulan Sorular
“Dosya İşlemleri için shutil” dersi ücretsiz mi?
Evet — “Dosya İşlemleri için shutil” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“Dosya İşlemleri için shutil” dersinde ne öğreneceğim?
Dosyaları kopyalayın, taşıyın ve arşivleyin Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Dosya İşlemleri için shutil” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- subprocess ile Komut Çalıştırma
- Çıktıyı Yakalama
- Ortam ve os Modülü
- Dosya İşlemleri için shutil