繁体   English   中英

如何编辑打印到stdout的字符串?

[英]How can I edit a string that was printed to stdout?

如何编辑刚打印的字符串? 例如,对于倒数计数器(首先打印30,然后将其更改为29,依此类推)

谢谢。

打印回车符\\r它会将光标移回到行的开头。 确保您不会打印换行符\\n结尾,因为你不能走回头路线。 这意味着您必须执行以下操作:

import time
import sys
sys.stdout.write('29 seconds remaining')
time.sleep(1)
sys.stdout.write('\r28 seconds remaining')

(与使用print相反, print会在它写入stdout的内容添加换行符。)

如果您的目标是Unix / Linux,那么“curses”会让编写控制台程序变得非常容易。 它处理颜色,光标定位等。查看python包装器: http//docs.python.org/library/curses.html

如果您使用类似xterm的输出设备,那么执行此操作的方法是重写输出。 您必须确保在编写数字时以回车符(没有换行符)结束,这会将光标移回行的开头而不会前进到下一行。 您编写的下一个输出将替换当前显示的数字。

你不能改变你打印的内容。 打印的是什么。 但是,就像bradley.ayers说的那样,你可以回到行的开头并在旧值上打印一些新内容。

您可以使用readline模块,该模块还可以提供自定义的完成命令历史记录

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM