Boş olmayan bir klasörü silmeye . os.remove("/folder_name")
komutu çalışmak ‘erişim engellendi’ hatasına neden olabilir. Peki olmayan bir klasörü/dizini kaldırmanın/silmenin en etkili yolu nedir?
shutil
import shutil
shutil.rmtree('/folder_name')
Standart Kitaplık: shutil.rmtree.
Tasarım gereği rmtree
, salt okunur dosyalar içeren klasörlerde başarısız olur. Klasörün salt okunur dosyalar içerip içermediğine bakılmaksızın silinmesini istiyorsanız:
shutil.rmtree('/folder_name', ignore_errors=True)
os.walk()
Python dokümanlarından: os.walk()
# "top" olarak verilen klasorden ulaşılabilen tüm klasörleri sil
# sembolik linklerin olmadığını varsaydık
# DİKKAT: Bu çok tehlikeli olabilir! Örneğin top == '/', olduğunda
# tüm dosyalarınızı silebilirsiniz.
import os
for root, dirs, files in os.walk(top, topdown=False):
for name in files:
os.remove(os.path.join(root, name))
for name in dirs:
os.rmdir(os.path.join(root, name))