首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有上线的特点?(与\n相反)

有没有上线的特点?(与\n相反)
EN

Stack Overflow用户
提问于 2012-07-14 00:19:33
回答 5查看 63.7K关注 0票数 77

我想在串行控制台中覆盖上面一行中的内容。有没有一个角色可以让我升职?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-14 00:26:50

大多数终端都能理解ANSI escape codes。此用例的相关代码如下:

  • "\033[F" -将光标移动到上一个line
  • "\033[A"的开头-将光标上移一行

示例(Python):

代码语言:javascript
复制
print("\033[FMy text overwriting the previous line.")
票数 110
EN

Stack Overflow用户

发布于 2012-07-14 00:20:09

不,这并不容易,因为你必须使用像curses library这样的东西,特别是如果你想对光标位置有更多的控制,并以编程的方式做更多的事情。

这里有一个Programming with Curses上的Python文档的链接,这个简短的tutorial/example可能也很有趣。

我在docs中找到了这条信息,如果你正在使用Windows的话:

没有人把curses模块移植到Windows上。在Windows平台上,尝试Fredrik Lundh编写的控制台模块。控制台模块提供光标可寻址文本输出,并完全支持鼠标和键盘输入,可从http://effbot.org/zone/console-index.htm获得。

我相信C++有NCurses库,如果你想尝试moving the cursor,链接页面上有一个关于C++的部分。还有NCurses Programming HowTo

很久以前,我用C很成功地使用了curses库。

更新

我错过了在终端/串行运行的部分,因为ANSI转义序列,特别是对于像您这样的简单任务,将是最简单的,我同意@SvenMarnach解决方案。

票数 10
EN

Stack Overflow用户

发布于 2017-08-26 15:45:58

代码语言:javascript
复制
for i in range(10):  
    print("Loading" + "." * i) 

    doSomeTimeConsumingProcessing()

    sys.stdout.write("\033[F") # Cursor up one lin

在Python中尝试一下,并用所需的任何例程替换doSomeTimeConsumingProcessing(),希望它能有所帮助

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11474391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档