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. 端末制御シーケンスを使用して、カーソルを移動します。これは、コマンド ターミナルが ANSI 対応の場合 (通常はデフォルトでは有効ではないと思います)、Windows で機能し、制御シーケンスを送信する適切なターミナルを選択 (または検索) すると、他のすべてで機能します。また、各行だけでなく、各文字を確実に上書きする必要があります。そうしないと、2 行目を上書きすると、「Writing a file!pt 11 , what would you like to do?」というメッセージが表示されます。

  4. curses(およびお気に入りのサードパーティの Windowscursesポート) またはその他の端末グラフィック ライブラリを使用して、これをすべてより高いレベルで実行します。console(存在する場合 (Windows の場合) とcursesそうでない場合 (それ以外のほとんどすべての場合)を使用して別のコードを記述することが、多くの場合、これを行う最も簡単な方法です。)

1つまたは4つをお勧めしますが、それらはあなたのオプションです.

于 2013-04-23T23:12:52.043 に答える