首页 > 解决方案 > 防止在Python程序中多行输入后需要按Command+D

问题描述

我的 Python 程序用于keyphrase = sys.stdin.readlines()获取用户输入。完成后,用户必须按下Command+D以继续执行程序。用户将输入的特定文本将被粘贴到终端中。是否可以从 更改Command+DEnter?如果是这样,怎么做?

标签: pythonpython-3.x

解决方案


fileinput在这里可能是正确的选择。

这有点 hacky,但fileinput.input()没有任何参数调用sys.stdin.readlines(),并为我们提供了一个上下文管理器,我们可以使用它来分别解析输入。

import fileinput
var = ""
with fileinput.input() as F:
    for line in F:
        if line == "\n":
            F.close()
        else:
            var += line

print(var)

在里面for-loop我们正在读取最新的输入值,这意味着我们可以解析给定的输入,然后决定如何进行。

sys.stdin.readlines()标准化给出的换行符,这意味着我们可以预期一个空行(输入按下)将返回'\n'。如果这是真的,那么我们关闭流。


推荐阅读