KOD İÇERİĞİ ( Klasör_Dosya_İsimlendirme.PY) :
Kod: Tümünü seç
import os
# Windows için yalnızca Windows ve System32 klasörlerini engelle
def sistem_dizini_mi(yol):
if os.name == "nt": # Windows
yasakli_dizinler = ["C:\\Windows", "C:\\Windows\\System32"]
return any(yol.lower().startswith(d.lower()) for d in yasakli_dizinler)
else: # Linux
yasakli_dizinler = ["/", "/root", "/etc", "/bin", "/usr", "/lib", "/sys", "/dev", "/proc"]
return yol in yasakli_dizinler
def dosya_adi_degistir(klasor):
while True:
dosya_dizinler = os.listdir(klasor)
if not dosya_dizinler:
print("\nBu klasör boş! Listeleme yapılamaz.")
return
print("\nKlasördeki dosya ve dizinler:")
for i, item in enumerate(dosya_dizinler, start=1):
print(f"{i}. {item} {'' if os.path.isdir(os.path.join(klasor, item)) else ''}")
secim = input("\nDeğiştirmek istediğiniz dosya veya dizinleri seçin (örnek: 1:3:5) veya 'exit' ile çıkın: ")
if secim.lower() == "exit":
print("Çıkılıyor...")
return
try:
secimler = [int(s.strip()) - 1 for s in secim.split(":")]
if any(s < 0 or s >= len(dosya_dizinler) for s in secimler):
print("Geçersiz numara! Lütfen listeden geçerli numaralar girin.")
continue
except ValueError:
print("Geçersiz giriş! Sayıları ':' ile ayırarak girin.")
continue
yeni_isimler = []
alt_dizinler = []
for s in secimler:
secilen_dosya = dosya_dizinler[s]
eski_yol = os.path.join(klasor, secilen_dosya)
if os.path.isdir(eski_yol): # Eğer dizin ise, ekstra seçenek sun
print(f"\n '{secilen_dosya}' bir dizin.")
islem = input("1 Sadece adını değiştir\n2 Adını değiştir ve içeriği listele\nSeçiminiz (1/2): ").strip()
if islem == "2":
alt_dizinler.append(eski_yol)
yeni_isim = input(f"Yeni ismi girin (eski isim: {secilen_dosya}): ").strip()
if not yeni_isim:
print("Yeni isim boş olamaz! İşlem iptal edildi.")
return
yeni_yol = os.path.join(klasor, yeni_isim)
if os.path.exists(yeni_yol):
print(f"Hata: '{yeni_isim}' zaten mevcut! İşlem iptal edildi.")
return
yeni_isimler.append((eski_yol, yeni_yol))
for eski_yol, yeni_yol in yeni_isimler:
try:
os.rename(eski_yol, yeni_yol)
print(f"\n '{os.path.basename(eski_yol)}' -> '{os.path.basename(yeni_yol)}' olarak değiştirildi.")
# Eğer içeriği listeleme seçeneği seçildiyse yeni adıyla devam et
if eski_yol in alt_dizinler:
dosya_adi_degistir(yeni_yol)
except Exception as e:
print(f"Hata oluştu: {e}")
devam_et = input("\nDevam etmek ister misiniz? (Evet/Hayır): ").strip().lower()
if devam_et not in ["evet", "e", "yes", "y"]:
print("İşlem tamamlandı.")
return
while True:
klasor_yolu = input("Lütfen dosya/dizinlerin bulunduğu klasör yolunu girin: ").strip()
if not os.path.isdir(klasor_yolu):
print("Geçersiz klasör yolu! Lütfen tekrar girin.")
continue
if sistem_dizini_mi(klasor_yolu):
print(" Hata: Windows veya System32 dizinlerinde işlem yapılamaz!")
continue
dosya_adi_degistir(klasor_yolu)
break
Bu Python betiği, kullanıcıya belirli bir dizindeki dosya ve dizinlerin adlarını değiştirme imkanı sunan bir araçtır. Betik, Windows ve Linux sistemlerine özel bazı kısıtlamalarla birlikte çalışmaktadır.
Betiğin Kod Özellikleri :
sistem_dizini_mi(yol):
Bu fonksiyon, verilen yolun sistem dizini olup olmadığını kontrol eder.
Windows için: C:\Windows ve C:\Windows\System32 dizinlerinde işlem yapılmasını engeller.
Linux için: Kritik sistem dizinlerinde (örneğin: /etc, /bin, /usr, vb.) işlem yapılmasını engeller.
dosya_adi_degistir(klasor):
Bu fonksiyon, kullanıcıya belirli bir dizindeki dosya ve dizinlerin adlarını değiştirme işlemi yapma imkanı sunar.
Klasördeki dosya ve dizinleri listeler ve kullanıcıdan bir seçim yapmasını ister.
Kullanıcı, dosya veya dizinlerin adlarını değiştirebilir. Eğer bir dizin seçilmişse, kullanıcıya iki seçenek sunulur:
Yalnızca dizinin adını değiştirme.
Dizinin adını değiştirme ve içeriğini listeleme.
İşlem Akışı:
Betik, kullanıcının girdiği klasör yolunun geçerli olup olmadığını kontrol eder.
Eğer yol geçerli değilse, tekrar giriş yapması istenir.
Eğer yol, sistem dizini ise işlem yapılmaz.
Sonrasında kullanıcıya dizindeki öğeleri listeleme ve adlarını değiştirme seçenekleri sunulur.
Kullanıcı ad değişikliği yaptıktan sonra, alt dizinlerde de benzer işlemleri gerçekleştirme imkanı sağlanır.
Kullanıcı etkileşimi:
Betik, kullanıcının yanlış giriş yapması durumunda hata mesajları gösterir ve geçerli seçimler bekler.
Ayrıca, işlem sonrasında devam etmek isteyip istemediği sorulur.
Kısıtlamalar:
Windows: C:\Windows ve C:\Windows\System32 dizinlerinde işlem yapılamaz.
Linux: Kök dizin ve kritik sistem dizinlerinde işlem yapılamaz.
EKRAN GÖRÜNTÜSÜ :

NOT:
Windows sisteminde "Bilinen Dosya Uzantıları Gizle" seçeneği devredışı ise (yani dosya uzantıları sistem'de görünür nitelikte ise) "Uzantı isimlerini de" değiştirebiliyorsunuz....!