Replace Metodu("\", "\\")

Merhabalar,

dosya1 = dosya.replace("\", "\\")

Bu kodu bir türlü print edemedim. Virgülü str olarak alıyor, bu yüzden SyntaxError veriyor. Nasıl düzeltebilirim?

dosya1 = dosya.replace("\", r"\\")

Bu şekilde deneyin. Sondaki ters slash kaçış dizisi olarak algılandığı için sondaki tırnak işareti algılanamıyor ve bu bir syntax hatasına yol açıyor. Karakter dizisinin başına “r” koyduğunuz zaman bunu engelleyebilirsiniz.

yine aynı hatayı verdi : (

Dosyayı kaydetmeyi unutmuş olmayasınız ? İşe yaraması lazımdı :thinking:

Hayır, Dosyayı kaydettim ama aynı hatayı veriyor.

dosya1 = dosya.replace("\", r"\\")
                                     ^
SyntaxError: unexpected character after line continuation character

Merhaba ikinci yazdığınız aslında ilk yazdığınıza tekabül ediyor. Yani "\\" yazdığınızda ilk \ ikinci \'ı “kaçıyor” ve elinizde bir tek \ kalıyor. Dolayısıyla ikincisi için de "\\\\" yaparsanız efektif olarak \\ elde edersiniz. Velhasıl:

dosya.replace("\\", "\\\\")

Not: raw string burada ilki için kullanılamıyor bir nevi istisnai bir durum (son paragraf) olduğundan. İkincisi için olur ama:

dosya.replace("\\", r"\\")

Bu da biraz garip duruyor sanki iki parametre de aynıymış gibi :)


Aslında siz heralde dosya yollarıyla uğraşıyorsunuz, belki daha kestirme veya daha güzel, okunaklı bir çözümü vardır spesifik bir problem ise.

3 Beğeni
print("dosya1 = dosya.replace(\"\\\", \"\\\\\")")

Nasil duzeltebilecegin ne yapmak istedigine gore degisiyor. Yapmak istedigin seyi bize de python dilinde soyledigin ve python’a soyledigin seyle ayni hatayi yaptigin icin biz de anlayamiyoruz. \'leri \\ ile degistirmeye mi calisiyorsun? replace("\\", "\\\\")

https://python-istihza.yazbel.com/kacis_dizileri.html#etkisizlestirme-r

Burda yazanlara göre, r kaçış dizisi \" karakter dizisindeki " nin string olarak algılanmasına engel olamıyormuş

1 Beğeni