• 12-12-2022, 22:54:54
    #10
    ERP adlı üyeden alıntı: mesajı görüntüle
    Bir site üzerinden veri geliyor. Gelen veride bir kaç kelime değiştirmek istiyorum. Tam olarak kodu iletiyorum.



    Yukarıdaki kodum sağlıklı bir şekilde çalışıyor. MODELKODU kelimesini URUNKODU olarak değiştirebiliyorum.

    Benim istediğim bunların yanına bir kaç kelime daha eklemek.

    Teşekkürler.

    yazdığınız fonksiyonu extrac("URUNKODU") şeklinde mi çağırıyosunuz?
  • 12-12-2022, 23:16:06
    #11
    yani amaç bir metinde geçen istediğiniz bir kelimeyi istediğiniz ile değiştirmek istiyorsanız şu şekinde kullanın. findall komudunu ayrıca neden kullanıdınız bilmiyorum farklı bir sebebi var mı.

    def extrac(metin: str):
    return metin.replace("MODELKODU","URUNKODU").replace("STO KKODU","PROMOSYONKODU").replace("STOK","URUN")

    print(extrac("MODELKODU nSTOKKODU nSTOK"))



    ya da degisecekler kelimelerin eski ve yeni değerlerini listede belirleyip fonksiyonu o sekilde cagırabilirsiniz.

    def extrac(metin: str, eski, yeni):
        for i in range(len(eski)):
            metin = metin.replace(eski[i],yeni[i])
        return metin
    
    eski = ["MODELKODU", "STOKKODU", "STOK"]
    yeni = ["URUNKODU", "PROMOSYONKODU", "URUN"]
    metin = "BU METINDEKI MODELKODU, STOKKODU VE STOK KELIMELERI DEGISECEKTIR."
    
    print(extrac(metin,eski,yeni))
    ya da bir metin ve liste gondererek. liste sırasıyla önce eski sonra yeni kelime gelecek şekilde oluşturulursa örnekteki gibi kullanılabilir. eger listedeki kelime metinde geciyorsa değiştirir, geçmiyorsa zaten pass geçer.

    def extrac(metin: str, liste):
        for i in range(0, len(liste), 2):
            metin = metin.replace(liste[i],liste[i+1])
        return metin
    
    
    liste = [
    "MODELKODU", "URUNKODU",
    "STOKKODU", "PROMOSYONKODU",
    "STOK", "URUN",
    "ESKI", "YENI",
    "ESKI KELIME", "YENI KELIME"
    ]
    
    
    liste = ["MODELKODU", "URUNKODU", "STOKKODU", "PROMOSYONKODU", "STOK", "URUN", "ESKI", "YENI", "ESKI KELIME", "YENI KELIME"]
    metin = "BU METINDEKI MODELKODU, STOKKODU VE STOK KELIMELERI, ESKI VE ESKI KELIME DEGISECEKTIR."
    metin = extrac(metin,liste)
    printmetin)
  • 13-12-2022, 00:10:31
    #12
    ERP
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Hayrettin adlı üyeden alıntı: mesajı görüntüle
    yani amaç bir metinde geçen istediğiniz bir kelimeyi istediğiniz ile değiştirmek istiyorsanız şu şekinde kullanın. findall komudunu ayrıca neden kullanıdınız bilmiyorum farklı bir sebebi var mı.

    def extrac(metin: str):
    return metin.replace("MODELKODU","URUNKODU").replace("STO KKODU","PROMOSYONKODU").replace("STOK","URUN")

    print(extrac("MODELKODU nSTOKKODU nSTOK"))



    ya da degisecekler kelimelerin eski ve yeni değerlerini listede belirleyip fonksiyonu o sekilde cagırabilirsiniz.

    def extrac(metin: str, eski, yeni):
        for i in range(len(eski)):
            metin = metin.replace(eski[i],yeni[i])
        return metin
    
    eski = ["MODELKODU", "STOKKODU", "STOK"]
    yeni = ["URUNKODU", "PROMOSYONKODU", "URUN"]
    metin = "BU METINDEKI MODELKODU, STOKKODU VE STOK KELIMELERI DEGISECEKTIR."
    
    print(extrac(metin,eski,yeni))
    ya da bir metin ve liste gondererek. liste sırasıyla önce eski sonra yeni kelime gelecek şekilde oluşturulursa örnekteki gibi kullanılabilir. eger listedeki kelime metinde geciyorsa değiştirir, geçmiyorsa zaten pass geçer.

    def extrac(metin: str, liste):
        for i in range(0, len(liste), 2):
            metin = metin.replace(liste[i],liste[i+1])
        return metin
    
    
    liste = [
    "MODELKODU", "URUNKODU",
    "STOKKODU", "PROMOSYONKODU",
    "STOK", "URUN",
    "ESKI", "YENI",
    "ESKI KELIME", "YENI KELIME"
    ]
    
    
    liste = ["MODELKODU", "URUNKODU", "STOKKODU", "PROMOSYONKODU", "STOK", "URUN", "ESKI", "YENI", "ESKI KELIME", "YENI KELIME"]
    metin = "BU METINDEKI MODELKODU, STOKKODU VE STOK KELIMELERI, ESKI VE ESKI KELIME DEGISECEKTIR."
    metin = extrac(metin,liste)
    printmetin)
    Şimdi oldu çok teşekkürler
  • 13-12-2022, 00:16:02
    #13
    ERP adlı üyeden alıntı: mesajı görüntüle
    Şimdi oldu çok teşekkürler
    Rica ederim, iyi akşamlar.
  • 13-12-2022, 22:28:24
    #14
    def degistir(metin):
        degistirmeler = {r'\bsınav\b':'sınavs',
                        r'\bdefter\b':'defters'}
        for i, j in degistirmeler.items():
            metin = re.sub(i,j,metin)
        return metin
    
    
    metin = "bugün sınav var, sınavdan önce defterlerimi diğer defter ile değiştireceğim."
    sonuc = degistir(metin)
    
    print(sonuc)
    bugün sınavs var, sınavdan önce defterlerimi diğer defters ile değiştireceğim.

    degistirmeler'e değişecek olan kelime ve yenisini renklendirdiğim şekilde arada boşluk olmadan eklemelisiniz. böylece örnekte yazdığım sınavdan değişmeyecek sadece sınav değişecektir.