2013-01-01 83 views
2

當打開並閱讀包含標記的文件(如單詞不應該)時,python用\'替換它最終不應該)。我試圖運行下面的代碼:Python:讀取txt文件後的string.replace(「'」,「'」)

a=open("file.txt") 
b=a.read() 
b=b.replace("\'", "'") 

但是B能保持運行的第三行,也許是因爲它讀取「\「」,好像它是「」」後的相同。請幫忙。

+3

Python不這樣做。它可能會顯示這樣的字符串,如果您打印它的表示形式(如果它也包含'''s),但它不會將反斜槓添加到實際的數據中「。 –

+1

與@Lattyware一致,只用交互式python3解釋器進行測試根本沒有這樣做...... – fge

回答

1

「\'」與「'」相同。反斜槓轉義',所以它不會執行其特殊功能。如果您有單引號字符串,那麼該功能很有用。 例如,字符串'「shouldn't」'被打印爲「不應該」。

Python 3.3.0 (default, Dec 22 2012, 21:02:07) 
[GCC 4.7.2] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> a = 'shouldn't' 
    File "<stdin>", line 1 
    a = 'shouldn't' 
       ^
SyntaxError: invalid syntax 
>>> a = 'shouldn\'t' 
>>> a 
"shouldn't" 
>>> a = '"shouldn\'t' 
>>> a 
'"shouldn\'t' 
>>> print(a) 
"shouldn't 
6

您需要雙倍的斜線:

b=b.replace("\\'", "'") 

或使用r""原始字符串字面:

b=b.replace(r"\'", "'") 

沒有翻倍斜線或原始字符串,則\'被解釋爲協商碼意思是'

務必仔細檢查你是不是在尋找一個字符串表示,其中蟒蛇表示使用轉義代碼'字符:

>>> '"' + "'" 
'"\'' 
>>> print '"' + "'" 
"' 

在上面的例子中,我創建一個字符串既一張雙人牀和一個單引號字符("')和Python以字符串表示方式回顯給我。使用print將打印實際的字符串內容而不是表示。請注意Python在那裏如何逃脫'的報價。