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

kur*_*urp 6 python string copy-paste input

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

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

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

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

如果解决方案在Linux和Windows环境中都能工作,那将是很棒的(我听说过,例如某些解决方案可能会因cmd.exe工作原因而导致问题).

Lau*_*low 7

import sys

text = sys.stdin.read()
Run Code Online (Sandbox Code Playgroud)

粘贴后,你一定要告诉蟒蛇,有没有更多的输入通过发送结束文件中的控制字符(ctrl+ D在Linux中,ctrl+ Z其次是enter在Windows).

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

$ echo "hello" | python paste.py

并将text等于"hello\n".它在Windows中是一样的:

C:\Python27>dir | python paste.py

上面的命令将保存输出dirtext变量.当使用管道提供输入时,无需手动键入文件结束字符 - 当创建输入的程序完成时,将自动通知python.