在python中解码字符串。。。其中包含uux08\uuux08\u d\x08de\x08el\x08li\x08it\x08te\x08em

在python中解码字符串。。。其中包含uux08\uuux08\u d\x08de\x08el\x08li\x08it\x08te\x08em,python,Python,我有一些字符串,里面有这样的字符,也有普通的字母, 我想转换所有的有线字符,它们是正常的表示。 所以我的问题是: 有没有一种类似蟒蛇的方法 我有一个字符串,例如: Mymethods defined here: | | __add__(...) | x.__add__(y) <==> x+y 它以某种方式具有以下输出: Mymethods defined here:\n | \n | _\x08__\x08_a\x08ad\x08dd\x08d_\

我有一些字符串,里面有这样的字符,也有普通的字母, 我想转换所有的有线字符,它们是正常的表示。 所以我的问题是: 有没有一种类似蟒蛇的方法

我有一个字符串,例如:

Mymethods defined here:
 |  
 |  __add__(...)
 |      x.__add__(y) <==> x+y
它以某种方式具有以下输出:

Mymethods defined here:\n 
 |  \n 
 |  _\x08__\x08_a\x08ad\x08dd\x08d_\x08__\x08_(...)\n 
 |      x.__add__(y) <==> x+y
\x08是退格的字符表示形式

所以你应该做一个regexp替换

s/.\\x08//
这将删除所有\x08


\n是正常的,因为它表示行的结尾。

一些非常古老的软件位,用于模拟打印机上的粗体文本,如高尔夫球打字机的雏菊轮,但先打印一个字符,然后退格,然后再打印相同的字符。看起来你的文本就是一个例子

这意味着您不仅需要删除退格,还需要删除退格后面的字符:

>>> s = "_\x08__\x08_d\x08de\x08el\x08li\x08it\x08te\x08em in it"
>>> import re
>>> re.sub("\x08.", "", s)
'__delitem in it'
>>> 

当然,最好是修复生成此文本的任何内容,并使其以更有用的方式生成粗体文本。

此字符串来自何处?这些字符串是从何处获得的?它们看起来像是保留了所有退格键的用户输入\x08是退格键…生成它的似乎是pydoc。但是,如果将其输出通过管道传输到子进程或文件,则不会获得\b。没错,当有输出文件时,它使用“纯文本”渲染器而不是“文本”渲染器。它不是一个干净的接口,因为您必须直接调用非导出函数以绕过退格粗体。