以下代碼:如何正確讀取文件中的黑色條紋?
key = open("C:\Scripts\private.ppk",'rb').read()
讀取文件和它的數據分配給了var key
。
出於某種原因,反斜槓在過程中會相乘。我怎樣才能確保他們不會倍增?
以下代碼:如何正確讀取文件中的黑色條紋?
key = open("C:\Scripts\private.ppk",'rb').read()
讀取文件和它的數據分配給了var key
。
出於某種原因,反斜槓在過程中會相乘。我怎樣才能確保他們不會倍增?
你......不。他們在閱讀時會被轉義,以便他們在寫出/使用時能夠正確處理。如果你聲明字符串,不想加倍的反斜槓,您可以使用原始字符串r'c:\myfile.txt'
,但並沒有真正應用到您正在閱讀文件的內容。
>>> s = r'c:\boot.ini'
>>> s
'c:\\boot.ini'
>>> repr(s)
"'c:\\\\boot.ini'"
>>> print s
c:\boot.ini
>>>
正如你所看到的,額外的斜槓是內部存儲的,但是當你在打印語句中使用該值時(寫入文件,測試值等),它們會被正確評估。
反斜槓表示爲轉義。你會看到文件上存在的每一個真正的反斜線,但這是正常的行爲。
原因是反斜槓用於創建代表不容易表示的字符的代碼,如新行'\ n'或製表符'\ t'。
你應該閱讀python and the backslash escape這個偉大的博客文章角色。
而且在某些情況下,如果 Python的打印信息的 控制檯,你會看到兩個 反斜槓,而不是一個。例如,對於 示例,這是repr()函數 和str()函數之間差異的 的一部分。
MyFileName的= 「C:\ newproject \ typenames.txt」 打印 再版(MyFileName的),STR(MyFileName的) 產生
'C:\ newproject \ typenames.txt' C:\ newproject \ typenames.txt
您是否試圖將單個反斜槓放入字符串中?帶反斜槓的字符串需要並轉義字符,在本例中爲「\」。它會用單斜槓打印到屏幕上
爲什麼這個答案有六個upvotes? 「他們在閱讀時逃脫」與發生的事情完全相反。額外的斜槓是由'repr()'添加的;它們不存儲在字符串中,因此在正常打印時不需要通過「print」進行「評估」。 – kindall 2011-05-19 23:57:42