2010-08-19 18 views
11
str = r'c:\path\to\folder\' # my comment 

IDE: Eclipse, Python ham değişmez dize

dizenin son karakteri ters eğik çizgi olduğunu python2.6

, son tek tırnak kaçış ve dize bir parçası olarak yorumumu görür gibi görünüyor. Ama ham dize tüm kaçış karakterlerini görmezden geliyor, değil mi? Ne yanlış olabilir? Teşekkürler.

cevap

33

Ham dize hazır hemen-Aşağıdaki karakter ters eğik çizgi ondan kaçmak yapar bu durumda literal sınırlayan bir alıntı karakter olduğunda dışında çıkış sıralarını başlatarak olarak ters eğik çizgi tedavi etmiyoruz.

Tasarım motivasyonu, işlenmemiş dize değişmezlerinin gerçekten yalnızca düzenli ifade kalıpları girme kolaylığı için var olmasıdır - yani, no bu tür hazırlıklar için başka bir tasarım hedefi vardır. Ve RE desenleri bir ters eğik çizgi ile bitmek zorunda kalmazlar, ancak kuralı da dahil olmak üzere her türlü alıntı karakterini içermelidir.

Birçok kişi, Windows izledikleri yolları onlar (ters eğik çizgi ile) alıştığınız şekilde girmelerini sağlamak için ham dize hazır kullanmayı deneyin - ama fark ettik gibi bu kullanım size bir yol gerekir ne zaman ayırır ters eğik çizgi ile sonlandırmak.

s = 'c:/path/to/folder/' 

(yan not:: gibi değil gölge yerleşik İsimleri Genellikle basit çözüm ileri eğik çizgi, Microsoft'un C çalışma zamanı ve yollar gibi tamamen eşdeğer Python desteği her sürümü kullanmaktır str, kendi tanımlayıcılarınızla birlikte, korkunç bir uygulamadır, herhangi bir terslik olmadan, ve o korkunç bir uygulamadan kaçınmanın alışkanlığına girmediğiniz sürece, bir gün kötü bir hata ayıklama sorunuyla karşılaşırsınız. kod, yerleşik bir adın üzerine girer ve başka bir parça, öğesinin, değerini yerleşik anlamıyla kullanması gerekir).

+3

(hatta çiğ dize ters eğik bir tek sayı bitemez) geçerli dize değil + Python'da 1, Windows yollarını '/' –

+0

ile düzgün bir şekilde yorumlama Biraz farklı kullanım ancak benzer bir soru: Bir b64encode() sonunda bir tam ters eğik çizgi ile bir bayt nesnesi nasıl yapılır? Eğer bsomestring 'ı bir hata alıyorum eğer, ben her iki ters eğik çizgi kodlar. – Jerod

İlgili konular