2013-04-23 130 views
0

我做一个脚本与菜单式的开头,我想知道如果我可以做这样的事情:在python中打印以前的打印?

您打开该文件,它打印菜单:

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

你选择写入(例如),然后打印此前在之前的打印菜单intead:

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

感谢您的帮助。

编辑:我不想完全擦除屏幕(我已经看过其他线程),但如果有一种方法只擦除一些线条,但是anwers告诉我这是不可能的没有外部库,所以我只需清理所有屏幕并重新打印一些东西,但是要感谢所有的驱动程序。

+2

什么平台? Windows控制台或POSIX终端或别的什么? – 2013-04-23 22:59:36

+0

请参阅http://stackoverflow.com/q/3593339/1176601 – Aprillion 2013-04-23 23:00:21

+0

您可能并不是真的想要“在上一个菜单上打印”(因为那时您会在新行较短的情况下留下剩余字符老),而是只是清除屏幕,对吧?如果是这样,请参阅http://stackoverflow.com/questions/4810537/how-to-clear-the-screen-in-python(这个问题是一个dup,但它有许多其他重复的dups的链接,所以按照好的答案的链接。) – abarnert 2013-04-23 23:05:13

回答

1

如果你想显示多行菜单,每个菜单选项后显示一个完全新的,只有几个方法可以做到这一点:

  1. 清除打印每个菜单在屏幕前。关于如何做到这一点,关于SO有大约69102个问题; how to clear the screen in python有许多链接。

  2. 打印出一个换页/换页。这在许多现代终端(Windows或Unix)上不起作用,但它在老派teletypes上摇摆不定。

  3. 使用终端控制序列来移动光标。如果cmd终端支持ANSI(我相信它通常不是默认情况下),并且在其他任何情况下,如果您选择(或查找)正确的终端来发送控制序列,这将在Windows上工作。您还必须确保覆盖每个字符,而不仅仅是每个。否则,当你覆盖第2行时,最终会出现“写入文件!第11页,你想要做什么?”。

  4. 使用curses(以及您最喜欢的第三方Windows curses端口)或其他终端图形库,可以在更高级别上执行此操作。 (使用console如果编写不同的代码存在,适用于Windows和curses否则,几乎一切,往往要做到这一点最简单的方法。)

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