如何将多行文本粘贴到python输入中[重复]
Posted
技术标签:
【中文标题】如何将多行文本粘贴到python输入中[重复]【英文标题】:How to paste multiple lines of text into python input [duplicate] 【发布时间】:2016-04-25 15:32:49 【问题描述】:我目前有以下代码行用于输入:
rawdata = raw_input('please copy and paste your charge discharge data')
当使用带有 Ipython 的 Enthoughts GUI 并运行我的脚本时,我可以很好地复制和粘贴预先格式化的文本,它会拉动 \t 和 \n。但是,当尝试将数据粘贴到脚本的终端样式版本时,它会尝试处理每一行数据,而不是将其作为批量接受。有什么帮助吗?
更多相关代码行:
rawed = raw_input('Please append charge data here: ')
time, charge = grab_and_sort(rawed)
def grab_and_sort(rawdata):
rawdata = rawdata.splitlines()
ex = []
why = []
for x in range(2 , len(rawdata)):
numbers = rawdata[x].split('\t')
ex.append(numbers[0])
why.append(numbers[1])
ex = array(ex)
why = array(why)
return (ex, why)
【问题讨论】:
它如何知道何时停止读取输入?空行、停用词之类的? 添加了一些更相关的数据。我不知道它是怎么知道停止读取输入的?raw_input
和 input
停止等待键盘输入换行符,您可以通过按 Enter 获得。该换行符不包含在输出中。如果您希望数据包含换行符,则必须确定如何告诉程序停止等待输入,然后让程序继续请求输入,直到满足此条件。
@AdamSchulz 欢迎来到 ***。即使您的问题以前以不同的方式提出过,您仍然可以接受或投票给您认为有帮助的答案。
【参考方案1】:
raw_input
接受任何输入直到输入换行符。
最简单的方法来做你要求它接受更多条目,直到遇到文件结尾。
print("please copy and paste your charge discharge data.\n"
"To end recording Press Ctrl+d on Linux/Mac on Crtl+z on Windows")
lines = []
try:
while True:
lines.append(raw_input())
except EOFError:
pass
lines = "\n".join(lines)
然后对整批文本做一些事情。
【讨论】:
Ctrl-D 不会停止在我的 shell 中输入。 你用什么外壳? 在 cmd 和 Powershell 上都试过了。 Windows 有一个不同的“EOF”键命令,我已经更新了答案。以上是关于如何将多行文本粘贴到python输入中[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将一长行代码粘贴到vs code mac中的多行[重复]