Merhaba. Python ile II Mərhələ yani Türkçe (Aşama II) isimli klasör içerisinde yer alan CIZIM, CIZGI, CIZIMLER, CIZGILER içerisinde yer alan tüm PDF dosyalarını ayırıp, farklı bir hedef klasöre kopyasını nasıl oluşturabilirim? II Mərhələ hedef klasör içerisinde doğrudan CIZIM, CIZGI, CIZIMLER veCIZGILER isimli klasörler bulunmuyor aslında. Alt klasörler içerisinde bulunuyor.
Örneğin: II Mərhələ içerisinde KÖPRÜ onun da içerisinde YOL altında bulunuyor CIZGI isimli klasör. Yani bu sub folder dediğim klasörleri yani kısacası nasıl Windows'da klasör içerisine girip sağ üst köşeden arama yapıyoruz ilgili klasörü bulmak için mesela aynı mantıkta ilgili klasörleri bulsun ve onun içerisindeki PDF dosyaları ayırsın. Şunu da belirtmek isterim. CIZGI içerisinde de PDFs klasörü olabilir. Yani kendisi o klasörler içerisinde PDF'leri ayırsın kısacası Benim için. Umarım fikrimi anlatabilmişimdir. Anlamayan olursa video şeklinde izah edebilirim.
Python ile belirli klasörler içerisindeki PDF dosyalarını ayırmak
4
●84
- 10-08-2024, 16:06:10
- Kabul Edilen Cevap
- 1 Beğeni
-
- 10-08-2024, 16:17:49Hemen bir video hazırlayıp upload edeceğim hocam. Daha net anlaşılır.ErayEfe adlı üyeden alıntı: mesajı görüntüle
- 10-08-2024, 16:33:09Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
import os import shutil # Pdflerin bulunduğu ana klasör yolu source_directory = r"C:\Documents\path\to\ana_klasor" # Dosyaların kopyalanacağı klasör yolu target_directory = r"C:\Downloads\path\to\hedef_klasor" # Kopyalamak istediğimiz klasör isimleri folder_names = ["CIZIM", "CIZGI", "CIZIMLER", "CIZGILER"] # Hedef klasör (target_directory) yoksa oluştur if not os.path.exists(target_directory): os.makedirs(target_directory) # Ana klasördeki tüm alt klasörleri kontrol et for root, dirs, files in os.walk(source_directory): for folder in dirs: if folder in folder_names: folder_path = os.path.join(root, folder) for dirpath, dirnames, filenames in os.walk(folder_path): for filename in filenames: if filename.endswith(".pdf"): source_file = os.path.join(dirpath, filename) destination_file = os.path.join(target_directory, filename) # Aynı isimde PDF varsa sonuna numara ekler counter = 1 while os.path.exists(destination_file): name, ext = os.path.splitext(filename) new_name = f"{name}_{counter}{ext}" destination_file = os.path.join(target_directory, new_name) counter += 1 shutil.copy2(source_file, destination_file) print(f"Kopyalandı: {source_file} -> {destination_file}") print("İşlem tamamlandı.")Anladığım kadarıyla böyle bir işlev istiyorsunuz - 10-08-2024, 23:39:22Hocam teşekkürler! Kod sorunsuz çalışıyor.mebularts adlı üyeden alıntı: mesajı görüntüle