我正在尝试编写一个程序来接受用户输入,这将是一个粘贴的文本块(包括多个换行符/回车符)。我无法找到有关如何(如果)Python可以处理此问题的信息。正常行为是输入命令在遇到第一个\ n时立即完成。
答案 0 :(得分:4)
当我第一次看到您的问题时,我将“输入命令”视为“正在输入的命令”,而不是“输入()函数”。我现在假设您正在从命令行收集数据。
输入换行符的问题是:你何时停止接受输入?以下示例通过等待用户点击 ctrl-d 来解决此问题。这会在raw_input()
函数中触发异常,然后突破while循环。
text = ''
# keep looping forever
while True:
try:
# grab the data from the user, and add back the newline
# which raw_input() strips off
text += raw_input() + "\n"
except EOFError:
# if you encounter EOF (which ctrl-d causes) break out of the loop
break
# print the text you've gathered after a dashed line
print "\n------------\n" + text
显然你会警告你的用户他们必须使用 ctrl-d 来停止输入文字,这可能有点尴尬 - 但是如果他们已经在命令上了提示它不应该那么糟糕。
此外,我在这里使用了raw_input()
,它收集了输入但不像exec()
那样input()
。如果您要执行结果,只需将print()
调用替换为:
exec(text)
有类似的结果。