是否有任何简单的方法来处理命令行 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/