2016-10-05 76 views
3

我想在python中創建一個非常簡單的程序,它需要從用戶讀取輸入並相應地寫入輸出。我需要類似這樣的輸出:在python中分開讀取和寫入

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

的事情是,我需要無限期地讀取輸入,每次用戶輸入數據我想使印刷數據不會妨礙輸入提示。更好的是不打印新行,保留上面的輸出:一行閱讀,另一行寫作。

我嘗試過使用curses,但我不想要使用孔屏幕,只是兩條線。

+0

每次在第一行打印一個字符時,它應該在第二行中回顯? – 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

這個實現在Windows上工作,但是,如果你使用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

真正:)更正 – Laszlowaty

+0

只有在按下Enter鍵後纔會「更新」屏幕? – Gabriel