2016-10-05 2 views
3

Я пытаюсь создать очень простую программу на python, которая должна читать входные данные от пользователя и соответственно записывать выходные данные. Мне нужен вывод, подобный этому:Прочитайте и напишите отдельно в python

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

Дела в том, что я должен читать ввод до бесконечности, каждый раз, когда пользователь вводит данные я хотел бы, что печатные данные не препятствуют входной строке. Еще лучше, чтобы не печатались новые строки, сохраняя вывод, как указано выше: строка для чтения и другая для записи.

Я пробовал использовать проклятия, но я не хочу, чтобы экран отверстия использовался, только две линии.

+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

Эта реализация работает на окнах, однако, если вы используете Linux, если я не ошибается это не нужно:

import colorama 
colorama.init() 

EDIT: Модифицированный мой код немного, чтобы он не переписывает текст, который был напечатан перед выполнением коды. Также добавлен образ рабочей реализации.

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

Не будет ли это «обновление» экрана только после нажатия клавиши «Ввод»? – Gabriel

Смежные вопросы