Python İle Alt Klasör Listeleme - Yardım
-
Merhaba
C:\2018\KlasörA\AltKlasörX
C:\2018\KlasörB\AltKlasörY
C:\2019\KlasörC\AltklasörZ
C:\2019\KlasörC\AltklasörZ\AltAltklasör1
C:\2019\KlasörC\AltklasörZ\AltAltklasör2
gibi bir klasör sistemim var.
Ben öyle bir kod yazayım ki hedef olarak "C:\" verdiğimde sadece en alt klasörleri listelesin istiyorum. Yani sadece üstte yazdığım yolları listeleyecek.
"C:\2019\KlasörC\" veya "C:\2019\KlasörC\AltklasörZ" veya "C:\2019" dönmeyecek.
Örneğe göre dönmesi gereken sonuç:
C:\2018\KlasörA\AltKlasörX
C:\2018\KlasörB\AltKlasörY
C:\2019\KlasörC\AltklasörZ\AltAltklasör1
C:\2019\KlasörC\AltklasörZ\AltAltklasör2
--
Özetle sadece en dip klasörleri listelesin istiyorum. İçinde alt klasör varsa o klasörü listelemesin ama alt klasörlerini versin.
Umarım anlatabilmişimdir.
EDİT: sadece en alt klasörlerde dosyalar var. İçinde dosya olan en dip klasörleri bulmak amacım
-
import os
path = "F:\\Klasor"
res = []
for root,dirs,files in os.walk(path, topdown=True):
#print(root)
if len(files) > 0:
res.append(root)
for klasor in res:
print(klasor)Sanırım bu çözüyor..
-
import os path = "F:\\Users\\Birisi\\Desktop\\Resimler" mapping = [(path+'\\',''), ('\\','-'), ('.', ''), (' ', '_'), ('İ', 'I') , ('Ğ', 'G') , ('Ü', 'U') , ('Ş', 'S') , ('Ö', 'O') , ('Ç', 'C') ] res = [] for root,dirs,files in os.walk(path, topdown=True): if len(files) > 0 : if len(files) == 1 and files[0].lower().endswith(('.png', '.jpg', '.jpeg', '.mov', '.mp4')): res.append([root,len(files)]) else: if len(files) > 1: res.append([root,len(files)]) for klasor,adet in res: isim = klasor for k, v in mapping: isim = isim.replace(k, v).upper() print(klasor,"|",isim,"|",adet, sep="")
----
Verdiğiniz klasörleri tarayıp, içinde png jpg mov mp4 dosyası olan klasörleri listeler, boş klasörleri listelemez. belki biraz amele işi kodlamış olabilirim ama işimi gördü :)
Verdiği listeden bat dosyası yapıp resimlerimi Google photos'a uplamıştım.