我正在使用Py 3.6编写一个涉及用户输入的脚本。
在这个脚本中,用户被要求在shell中输入文本段落 - 可能包含换行符。然后将输入的文本保存到Python变量中以进行进一步处理。
由于用户输入可能包含换行符,因此我认为不能使用input()
,而是使用sys.stdin.read()
(如此处所建议)。
问题
读取输入正常工作,但是为了结束用户输入,用户必须按回车键,然后使用组合键CTRL + d
(请参见此处)。 (请参见下面的当前过程)
问题
- 我希望用户只需按回车键即可结束对
sys.stdin.read
的输入(请参见下面的期望过程)
编辑:也欢迎对使用CTRL + d
的当前过程进行简化。
这可行吗?
这里有一些技巧here,但我想也许有更好的方法
当前代码
# 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
以结束输入并移动到下一个文件
在MacOSX上运行Python 3.5.6,使用终端进行文本输入。非常感谢您的任何帮助!
print("按下ctrl + d继续")
。 - Mad Physiciststdin
中的“读取”来区分输入序列的时间。唯一的其他选择是立即想到的,您是否可以在输入的任何其他地方有空行(只是换行符)?如果没有,那么终止输入将相当简单,否则不是那么简单(可能也不是非常可靠)。 - Ondrej K.