2016-10-05 5 views
3

私は、ユーザーからの入力を読み込んでそれに応じて出力を書き込む必要のある非常に単純なプログラムを、Pythonで作成しようとしています。私は、このような出力を必要とする:Pythonで個別に読み書きする

$./program.py 
say something: Hello World 
result: hello world 

事は、私は、無期限に利用者iが印刷されたデータは、入力プロンプトを妨げないことを希望データを入力するたびに入力を読み込む必要があるということです。上のように出力を保持して改行を印刷しないほうが良いでしょう。読み込み用の行と書き込み用の行です。

私はcursesを使ってみましたが、私はホールスクリーンを使用したくない、ちょうど2行です。

+0

文字が1行目に印刷されるたびに、2行目にエコーされますか? – Gabriel

答えて

3

私は、これはあなたが望むものであると考えている:それは文字列を入力した後にどのように見えるか

import colorama 
colorama.init() 
no = 0 
while True: 
    user_input = str(raw_input('\033[2A'*no + '\033[KSay something: ')) 
    print '\033[KResult: ' + user_input 
    no = 1 

は、この:

Working solution

この実装はウィンドウで動作しますが、Linuxを使用している場合は、間違えこれらは必要ありません。

import colorama 
colorama.init() 

編集:それは、コードの実行前に印刷されたテキストを上書きしないように、少し私のコードを修正しました。また、実装された実装イメージを追加しました。

2

あなたはveeeery簡単なトリックを行うことができます。

from os import system 
while True: 
    system('clear') # or 'cls' if you are running windows 
    user_input = input('say something:') 
    print('result: ' + user_input) 
    input() 
+0

これは、結果を印刷した直後の画面をクリアしますので、表示されません。 – brianpck

+0

true :)修正 – Laszlowaty

+0

Enterキーを押した後にのみ画面を更新しますか? – Gabriel

関連する問題