如何在python中从打印输出中删除字符
我正在尝试从另一个打印语句中删除打印在打印语句中的额外字符 下面是我的代码的样子:如何在python中从打印输出中删除字符,python,list,python-3.x,Python,List,Python 3.x,我正在尝试从另一个打印语句中删除打印在打印语句中的额外字符 下面是我的代码的样子: print(addedlist) #addedlist = [9,5,1989,1,2,3,4,5,6,7,8,9] for x in range(0, len(addedlist)): print('%d->'%addedlist[x],end="") print('\n') 其输出如下所示: [9, 5, 1989, 1, 2, 3, 4, 5, 6, 7, 8, 9] 9->5-
print(addedlist) #addedlist = [9,5,1989,1,2,3,4,5,6,7,8,9]
for x in range(0, len(addedlist)):
print('%d->'%addedlist[x],end="")
print('\n')
其输出如下所示:
[9, 5, 1989, 1, 2, 3, 4, 5, 6, 7, 8, 9]
9->5->1989->1->2->3->4->5->6->7->8->9->
我正在尝试删除最后的->
字符。我试着做:
print(addedlist) #addedlist = [9,5,1989,1,2,3,4,5,6,7,8,9]
for x in range(0, len(addedlist)):
print('%d->'%addedlist[x],end="")
print('\b\b\n')
但它不起作用
我将如何着手实现这一点
编辑:
只是澄清一下,我知道我可以更改原始的print语句以更正确地打印它,以避免拖尾
->
。。。我正在寻找一个解决方案,一旦出现错误,如何删除尾随“->”使用str.join
:
>>> s = [9,5,1989,1,2,3,4,5,6,7,8,9]
>>> print ('->'.join(map(str, s)))
9->5->1989->1->2->3->4->5->6->7->8->9
或者更好地使用sep
作为'->'
:
>>> print(*s, sep='->')
9->5->1989->1->2->3->4->5->6->7->8->9
我注意到您想要使用
回车
命令。首先,您需要了解当前活动行的\b
(将活动位置移动到上一个位置)和\r
(将活动位置移动到行首)工作原理。我认为您正在使用命令行解释器;在下一行中明确按enter键。
命令行解释器使用
代码>如下所示:
>>> print("abb", end=""); print("\b\bcc")
acc
>>> print("a->", end=""); print("\b\b ")
>>> a
如果您正在使用一些脚本,那么您的代码应该可以工作,请参阅:
Upload$ cat s.py
print ("abcd->", end="")
print ("\b\b ")
Upload$ python3.2 s.py
abcd # notice -> is removed
但这并没有多大用处,正确的方法正是他所展示的
编辑:我发现你的代码有错误
print('%d->' % addedlist[x], end="")
print('\b\b\n')
使用'\b'
将活动位置移动到上一个位置,但不覆盖“->”
,只输出将光标移动到下一行的'\n'
,您应该按照以下方式更正代码
print('%d->' % addedlist[x], end="")
print('\b\b \n')
# ^^^ /b then overwrite with spaces
在Linux shell上以$python scriptname.py
的形式运行(对于命令行python解释器,您可以使用一些东西,只需播放、使用str.join
或使用print()
中的sep
参数即可) 您将需要比打印命令更强大的功能。谢谢。。我知道如何更改打印语句以正确打印。。我有兴趣在打印错误后更正它done@sukhvir否一旦您在标准输出上打印,您就不能覆盖它(如果您不在库中工作)。所以,这里的答案就是,做你想做的,否则就学习ncurses模式。谢谢,伙计。看看您的命令行解释器代码,您将如何在我的for循环代码中实现它?非常感谢。。这有助于命令提示。。。为什么这个在pythonshell中不起作用呢???@sukhvir不,它在pythonshell中使用代码>如我所示。注意:在python解释器上,您显式输入以运行注释,该注释在输出时也给出换行符。@sukhvir在使用您的代码大约5分钟后,我可以在python的命令行解释器上为命令行拦截器编写一个将要运行的代码