如何在字符串替換這些字符:R '\ XB0' 與R '\ 260',我已經嘗試過用做:如何更換R ' XB0' 與R ' 260'
test = u'\xb0C'
test = test.encode('latin1')
test = test.replace(r'\xb0', r'\260')
但它不起作用。問題是,我必須將數據寫入到八進制格式的文件(例如「\ 260」),而不是十六進制格式等
如何在字符串替換這些字符:R '\ XB0' 與R '\ 260',我已經嘗試過用做:如何更換R ' XB0' 與R ' 260'
test = u'\xb0C'
test = test.encode('latin1')
test = test.replace(r'\xb0', r'\260')
但它不起作用。問題是,我必須將數據寫入到八進制格式的文件(例如「\ 260」),而不是十六進制格式等
你的意思
>>> test.encode('unicode-escape').replace(r'\xb0', r'\260')
'\\260C'
或
>>> ''.join('\\%o' % ord(c) for c in test)
'\\260\\103'
或最慷慨的做法(即原來是實際上是由OP要求)
>>> table = {i: unicode(chr(i)) if 32 <= i < 128 else u'\\%o' % i for i in range(256)}
>>> u'\xb0ABD\260'.translate(table)
u'\\260ABD\\260'
太棒了! who'r you;)魔術師 – user2973395
它的工作;)第一個解決方案是OK!謝謝 – user2973395
還有一個問題,我怎樣才能避免雙反斜槓(\\)?我只想得到一個;) – user2973395
你並不想取代'R'\ xb0''你呢?您要替換*字符*,而不是4個字符的序列。 '.replace('\ xb0',r'\ 260')'本來會更合適。 –