os.remove()
bir dosyayı kaldırır.os.rmdir()
boş bir dizini kaldırır.shutil.rmtree()
bir dizini ve tüm içeriğini siler.
Python 3.4+ için pathlib
modülünden path
nesneleri de aşağıdaki metotlara sahip:
pathlib.Path.unlink()
bir dosyayı veya sembolik bağlantıyı kaldırır.pathlib.Path.rmdir()
boş bir dizini kaldırır.
Şimdi bunlara biraz daha detaylı bakalım.
Dosya silmek için Python sözdizimi
import os
os.remove("/tmp/<dosya_adi>.txt")
Veya
import os
os.unlink("/tmp/<dosya_adi>.txt")
Veya
pathlib kütüphanesinden (Python versiyon >= 3.4):
file_to_rem = pathlib.Path("/tmp/<dosya_adi>.txt")
file_to_rem.unlink()
Path.unlink(missing_ok=False)
Dosyayı veya symbolik bağlantısını kaldırmak için kullanılan bağlantıyı kaldırma yöntemi.
missing_ok=False kullanıldığında (varsayılan): dosya bulunamazsa FileNotFoundError hatası verir.
missing_ok=True için, FileNotFoundError özel durumları yoksayılır (POSIX rm -f komutuyla aynı davranır).
En iyi uygulama
İlk olarak, dosya veya klasörün var olup olmadığını denetleyin, sonra yalnızca bu dosyayı silin. Bu iki şekilde yapılır:
a. os.path.isfile(“/path/to/file”)
b. hata yakalama
ÖRNEK os.path.isfile
#!/usr/bin/python
import os
myfile="/tmp/foo.txt"
## Dosya varsa sil ##
if os.path.isfile(myfile):
os.remove(myfile)
else: ## Hata mesajı göster ##
print("Hata: %s dosyası bulunamadı" % myfile)
ÖRNEK: hata yakalama
#!/usr/bin/python
import os
## Kullanıcı girdisi al##
myfile= raw_input("Silinecek dosyanın adını yazınız: ")
## Dosyayı silmeyi dene ##
try:
os.remove(myfile)
except OSError as e: ## Eğer hata verirse kullanıcıya hatayı ilet ##
print ("Hata: %s - %s." % (e.filename, e.strerror))
Klasörü silmek için Python sözdizimi
shutil.rmtree()
Örnek shutil.rmtree()
#!/usr/bin/python
import os
import sys
import shutil
# Klasör adını al
mydir= raw_input("Klasör adını yazınız: ")
## Klasörü silmeyi dene; eğer hata verirse kullanıcıya göster
try:
shutil.rmtree(mydir)
except OSError as e:
print ("Hata: %s - %s." % (e.filename, e.strerror))