2024-05-23 15:52:44 发布
网友
在命令行Python应用程序中,有没有简单的方法来处理多行用户输入?
我在寻找一个没有任何结果的答案,因为我不想:
我想实现的是允许用户粘贴整个文本(包含多行),并在完全命令行工具中将输入捕获为一个字符串。在Python中有可能吗?
如果这个解决方案在Linux和Windows环境下都能工作,那就太好了(我听说有些解决方案可能会因为cmd.exe的工作方式而导致问题)。
您可以从剪贴板中获取文本,而无需用户执行任何附加操作raw_input()即可粘贴多行文本:
raw_input()
import Tkinter root = Tkinter.Tk() root.withdraw() text = root.clipboard_get() root.destroy()
另见How do I copy a string to the clipboard on Windows using Python?
使用:
input = raw_input("Enter text")
它们以字符串形式输入所有输入。因此,如果粘贴整个文本,所有文本都将位于input变量中。
input
编辑:显然,这只适用于Windows上的Python Shell。
import sys text = sys.stdin.read()
粘贴后,您必须通过发送文件结束控制字符(Linux中的ctrl+D,Windows中的ctrl+Z和enter来告诉python不再有输入。
这种方法也适用于管道。如果上面的脚本名为paste.py,则可以
paste.py
$ echo "hello" | python paste.py
而text将等于"hello\n"。在windows中也是一样的:
text
"hello\n"
C:\Python27>dir | python paste.py
上面的命令将把dir的输出保存到text变量。当使用管道提供输入时,不需要手动键入文件结尾字符——当创建输入的程序完成时,将自动通知python。
dir
您可以从剪贴板中获取文本,而无需用户执行任何附加操作
raw_input()
即可粘贴多行文本:另见How do I copy a string to the clipboard on Windows using Python?
使用:
input = raw_input("Enter text")
它们以字符串形式输入所有输入。因此,如果粘贴整个文本,所有文本都将位于
input
变量中。编辑:显然,这只适用于Windows上的Python Shell。
粘贴后,您必须通过发送文件结束控制字符(Linux中的ctrl+D,Windows中的ctrl+Z和enter来告诉python不再有输入。
这种方法也适用于管道。如果上面的脚本名为
paste.py
,则可以而
text
将等于"hello\n"
。在windows中也是一样的:上面的命令将把
dir
的输出保存到text
变量。当使用管道提供输入时,不需要手动键入文件结尾字符——当创建输入的程序完成时,将自动通知python。相关问题 更多 >
编程相关推荐