2014-10-02 37 views
0

我已經從文件中讀取一行,我有這樣的: 「咖啡館\ XC3版權所有\ xA9」python從字符串中刪除十六進制前兩個字符。

我想刪除所有的「\」和字符串中的「X」字符。但是,這些不是indicidul字符,它們是十六進制值。我該怎麼做呢?

輸出: Cafc3a9

+0

你想'Caf'這是ASCII保持不變? – ashwinjv 2014-10-02 00:16:24

+0

您是否意識到這個字符串實際上只有五個字符長?最後兩個字符在十六進制中顯示爲「'\ xc3 \ xa9''。很難理解爲什麼你要有效地將它們的值轉換爲常規的十六進制數字並將它們放在正常值的字符串中...... – martineau 2014-10-02 00:21:00

+0

你所要求的是一個壞主意。你真正想做的是做'Caf \ xc3 \ xa9'.decode('utf-8'),它會產生Unicode字符串u'Café'。閱讀Python [Unicode HOWTO](https://docs.python.org/2/howto/unicode.html)瞭解更多詳情。 – rmunn 2014-10-02 01:43:09

回答

-1

如果字符串顯示爲'\xab\xcd'的\和x 字符串的實際部分 - 既不是ABCD。相反,只有兩個字符,一個值爲0xab,一個值爲0xcd。

你可以寫

'\xab\xcd'.encode('hex') 

得到 'ABCD'

0

Python 3裏有各種字符串操作內置。嘗試使用replace()方法。

它的文檔可以在這裏找到官方網頁:

https://docs.python.org/3.4/library/string.html

sample = r'Caf\xc3\xa9' 
output = sample.replace(r'\x', '') 
print(output) 

注:「R」只是意味着蟒蛇應該把括號裏面的內容作爲原始字符串,因此不要使用反斜線來執行任何字符轉義。

相關問題