0

我正在做一个带有菜单开头的脚本,我想知道我是否可以做这样的事情:

您打开文件并打印此菜单:

LOGO
Welcome to script 11 , what would you like to do?
-write a file
-read a file
-create a file
> #input here

您选择写入(例如),它会在之前的菜单上打印此菜单而不是在它之后打印:

LOGO
Writing a file!
-Select the path:
> #input here

我在这里先向您的帮助表示感谢。

编辑:我不想完全擦除屏幕(我已经看过其他线程)但是如果有一种方法可以只擦除一些行,但是答案告诉我没有外部库是不可能的所以我会清理所有屏幕并重新打印一些东西,但感谢所有回答者

4

2 回答 2

2

如果您使用的是 Linux(或 OSX),则可以使用curses 模块

如果您使用的是 windows,请使用控制台模块

于 2013-04-23T23:08:09.843 回答
1

如果您想显示一个多行菜单,并在每个菜单选项后显示一个全新的菜单,那么只有几种方法可以做到这一点:

  1. 在打印每个菜单之前清除屏幕。SO上有大约69102个关于如何做到这一点的问题;如何在 python 中清除屏幕有很多链接。

  2. 打印出换页/换页。它不适用于许多现代终端(Windows 或 Unix),但它适用于老式电传打字机。

  3. 使用终端控制序列来移动光标。如果 cmd 终端启用了 ANSI(我相信它通常不是默认情况下),这将适用于 Windows,如果您选择(或查找)正确的终端来发送控制序列,则适用于其他一切。您还必须确保覆盖每个字符,而不仅仅是每一。否则,当您覆盖第 2 行时,您最终会得到“Writing a file!pt 11 , what would you like to do?”。

  4. 使用curses(和您最喜欢的第三方 Windowscurses端口)或其他一些终端图形库,在更高级别上完成这一切。console(使用if it exists编写单独的代码——对于cursesWindows——否则——对于几乎所有其他东西——通常是最简单的方法。)

我建议 1 或 4,但这些是你的选择。

于 2013-04-23T23:12:52.043 回答