• 17-05-2022, 19:35:54
    #1
    Merhaba hocalarım öncelikle iyi akşamlar... bir sorum olacak;

    Python ile klasör içindeki dosyalardaki benzer kelimelerin tümünü değiştirmek istiyorum bir türlü halledemedim. Dosyaların adını değiştirmeyi yapabiliyorum ama dosyaların içindeki kelimeleri değiştiremiyorum. Örnek olarak A adında bir klasörümüz olsun A klasörünün altında da A1, A2, A3 gibi dosyalar var bu dosyaların içeriği aynı olacak mesela merhaba gibi benim bu dosyaların içinde yazan merhaba'yı selam olarak değiştirmem lazım ama toplu bir halde. Nasıl yapabilirim bilgi verebilecek biri var mı acaba?
  • 17-05-2022, 19:55:04
    #2
    Grepwin programı ile yapabilirsiniz hocam.
  • 17-05-2022, 23:14:13
    #3
    Python Coder
    dosyalar txt mi hocam
  • 18-05-2022, 00:26:27
    #4
    import os
    from pathlib import Path
    def replace_with_news(directory, text, replacedText):    
        # dizindeki tum txtleri getir
        result = list(Path(directory).rglob("*.[tT][xX][tT]"))
        
        # tum txtleri sirayla dolasip oku, yeni metinlerle degis ve yaz.
        for file in result:
            # oku
            with open(file, 'r', encoding="utf-8") as rfile:
                data = rfile.read()
                data = data.replace(text,replacedText)
            
            # yaz
            with open(file, 'w', encoding="utf-8") as rfile:
                rfile.write(data)
                
    # degistir
    replace_with_news(os.getcwd(), 'good', 'yeni')
    String replacement olayı çok complex, birçok validasyon gerektiriyor. Ornegin özel isimler, ek alan kelimeler, büyük kucuk harflerle eşleşme gibi birçok validasyondan geçirmeniz gerekiyor. Geçirdikten sonra replace_with_news() fonksiyona gonderin. Bir de encodingten kaynaklı sorunlar için de try catch içine alıp ona göre işlem yapabilirsiniz.