Я работаю над сценарием с пользовательским вводом в Py 3.6.
В сценарии пользователя просят ввести текстовый раздел - потенциально содержащий новые строки - в оболочку. Введенный текст будет сохранен в переменную Python для дальнейшей обработки.
Поскольку пользовательский ввод может содержать новые строки, я думаю, что я не могу использовать input()
, но использую sys.stdin.read()
(как предложено здесь ).
Задача
Чтение во вводе работает нормально, но для окончания пользовательского ввода пользователь должен нажать Return и затем использовать комбинацию клавиш CTRL + d
(см. здесь ). (См. Текущая процедура ниже)
Вопрос
- Я бы предпочел, чтобы пользователь мог просто завершить ввод до
sys.stdin.read
, нажав клавишу Return (см. Ожидаемая процедура ниже)
РЕДАКТИРОВАТЬ: Любое другое упрощение текущего процесса с CTRL + d
также приветствуется.
Текущий код
# display text on screen
print("Review this text\n" + text)
# user will copy and paste relevant items from text displayed into Terminal
user_input = sys.stdin.read()
print ("hit ctrl + d to continue")
# process `user_input`
Текущая процедура
С текущим кодом, воспроизведенным ниже, пользователь должен
1) вставить текст
2) нажмите RETURN
, чтобы завершить ввод
3) нажмите Ctrl+d
, чтобы перейти к следующему файлу
Ожидаемая процедура
Я хотел бы уменьшить это до:
1) вставить текст
2) нажмите RETURN
, чтобы завершить ввод и перейти к следующему файлу
Запуск Python 3.5.6 на MacOSX с использованием терминала для ввода текста.
Любая помощь очень ценится!