python - 防止在Python程序中多行输入后需要按Command+D
问题描述
我的 Python 程序用于keyphrase = sys.stdin.readlines()
获取用户输入。完成后,用户必须按下Command+D
以继续执行程序。用户将输入的特定文本将被粘贴到终端中。是否可以从 更改Command+D
为Enter
?如果是这样,怎么做?
解决方案
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'
。如果这是真的,那么我们关闭流。
推荐阅读
- text - 如果数据框中的字符串包含子字符串,则将所有内容替换为其他内容
- javascript - Angular/typescript 映射对象
- python - 在python中将带有图像的目录转换为csv文件
- javascript - Adobe Forms - 用户添加新字段的能力
- powerbi - 应用基于 Power BI 中另一个表中的列的筛选器后,如何聚合一个表中的一列?
- java - Angular 应用程序仅在 chrome 中出现 CORS 错误
- r - 为什么将 renderPrint() 与 read_csv2 读取的 .csv 文件结合使用会在我的输出中产生一个奇怪的索引栏?
- java - 如何使用 REST Easy 和 Vertx 启用 @Valid 注释
- javascript - 使用 Rollup 使用 Vue 编译 javascript 时出错
- ios - 关闭从不同方法呈现的视图控制器