如何将多行文本粘贴到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_inputinput 停止等待键盘输入换行符,您可以通过按 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中的多行[重复]

将多行(读取为单行/输入)粘贴到 Spyder 控制台

在 Eclipse 中粘贴多行 Java 字符串 [重复]

如何从用户那里获取多行输入[重复]

如何从控制台读取多行文本,然后将内容保存到带有换行符的文件中?

如何使用 Swift 在 iOS 中检测多行键盘粘贴事件?