python - 命令行 Python 应用程序中的多行用户输入

标签 python string input copy-paste

是否有任何简单的方法来处理命令行 Python 应用程序中的多行用户输入

我一直在寻找没有任何结果的答案,因为我不想:

  • 从文件中读取数据(我知道,这是最简单的方法);
  • 创建任何 GUI(让我们只使用命令行,好吗?);
  • 逐行加载文本(应该一次粘贴,而不是键入和逐行粘贴);
  • 分别处理每一行(我希望将整个文本作为一个字符串)。

我想要实现的是允许用户粘贴整个文本(包含多行)并在完全命令行工具中将输入捕获为一个字符串。在 Python 中可能吗?

如果该解决方案在 Linux 和 Windows 环境中都有效(我听说,例如,由于 cmd.exe 的工作方式,某些解决方案可能会导致问题),那就太好了。

最佳答案

import sys

text = sys.stdin.read()

粘贴后,你必须通过发送一个文件结束控制字符(ctrl+D in Linux,)告诉python没有更多的输入>ctrl+Z 后跟 enter(在 Windows 中)。

此方法也适用于管道。如果上面的脚本叫做paste.py,你可以这样做

$ echo "hello" | python paste.py

text 将等于"hello\n"。在windows中也是一样的:

C:\Python27>dir | python paste.py

上述命令会将 dir 的输出保存到 text 变量中。当使用管道提供输入时,无需手动键入文件结束字符——当创建输入的程序完成时,python 将自动收到通知。

关于python - 命令行 Python 应用程序中的多行用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12493934/

相关文章:

java - Java 使用 netbeans 读取输入文件时遇到问题

javascript - 使用文本输入字段时出现 Javascript 中的 NaN

input - 整数输入的 JavaFX TextField 验证,最后还允许 K 或 k(代表千)或 M 或 m(代表百万)

python - 共享相同颜色条的绘图堆叠表面

python - 如何根据来自 for 循环的值创建多维列表

python - 使用 PyGTK 进行线程化

python - 为什么 python reduce() 会跳过 None 元素?

javascript - JavaScript 中的“unraw”字符串

c - C 如何获得字符串数组的数组偏移量?

Java 字符串 UTF-8 限制