如何将退格键\x08应用于字符串?



我有一个 utf-8 列表变量行,如下所示:
[u' ASUS-ASUS-131:66 BF-24-XX-XX-BF--More-- x08x08x08x08x08x08x08x08x08 x08x08x08x08x08x08x08x08x08-A0,'u' ASUS-ASUS-084:R0 AX-24-AX-AC-AX-10]

如果我这样做print lines它将打印与上面相同的退格键\x08 但是如果我一行一行地打印for i in linesprint i

它将打印ASUS-ASUS-131:66 BF-24-XX-XX-BF-A0 ASUS-ASUS-084:R0 AX-24-AX-AC-AX-10我知道打印功能实际上正在执行backspace但是有没有办法将打印值分配给变量以摆脱退格? 我已经试过str_var = str(i)但它不起作用

下面是一个示例

>>> test='                                                                                
--More-- x08x08x08x08x08x08x08x08x08         
x08x08x08x08x08x08x08x08x08'
>>> print test
>>> repr(test)
"'                                                                                
--More-- \x08\x08\x08\x08\x08\x08\x08\x08\x08         
\x08\x08\x08\x08\x08\x08\x08\x08\x08'"

我不明白为什么它像这样显示,我想将空的print输出分配给变量

Python 本身并不特别处理退格键。您可以通过将字符串视为堆栈来应用退格键,其中退格键会弹出最后一个字符。

法典

def do_backspace(s):
chars = []
for c in s:
if c == 'b' and chars:
chars.pop()
else:
chars.append(c)
return ''.join(chars)
s = 'Original string: foobbb'
print(repr(s))
new_s = do_backspace(s)
print(repr(new_s))

在这里,额外的退格被忽略,但您可以添加一个条件来区别对待它们。

输出

'Original string: foox08x08x08'
'Original string: '

打印repr(some_line).这将显示转义(x08(字符。

最新更新