如何将IPython输出粘贴到IPython中?

如何将IPython输出粘贴到IPython中?,ipython,paste,Ipython,Paste,问题的标题说明了这一点;我正在读一本书,我想使用IPython动态地尝试代码,但所有代码的结构如下: right = DataFrame({'key1': ['foo', 'foo', 'bar', 'bar'], ....: 'key2': ['one', 'one', 'one', 'two'], ....: 'rval': [4, 5, 6, 7]}) 我想直接从终端内部的书中复制它,但即使使用%paste,我也会收到一个无效的语法错误。我可以使用%cpaste,但对于较长的输入,这有点

问题的标题说明了这一点;我正在读一本书,我想使用IPython动态地尝试代码,但所有代码的结构如下:

right = DataFrame({'key1': ['foo', 'foo', 'bar', 'bar'],
....: 'key2': ['one', 'one', 'one', 'two'],
....: 'rval': [4, 5, 6, 7]})
我想直接从终端内部的书中复制它,但即使使用%paste,我也会收到一个无效的语法错误。我可以使用%cpaste,但对于较长的输入,这有点令人沮丧


感谢您的帮助

所以它应该可以工作,但是您需要确保粘贴
…:
时对齐良好。这意味着你需要仔细地复制

例如,以下各项应适用:

right = DataFrame({'key1': ['foo', 'foo', 'bar', 'bar'],
   ....: 'key2': ['one', 'one', 'one', 'two'],
   ....: 'rval': [4, 5, 6, 7]})
或者这一个(我们在[]中看到与
半列对齐:

In [68]: a = [1,
   ....: 2,
   ....: 3]
我的猜测是,如果你不能比以前复制得更好,那就是这本书在粘贴时的格式不好。如果是这样,你仍然可以打开一个基本的文本编辑器,找到并替换
…:
,而不使用任何内容

与其打开一个问题,它更可能与
%paste
函数的一个功能有关,该功能实现了一些处理不良缩进的功能,但在我看来,它开始变得混乱


希望这会有所帮助。

似乎%paste只检测和剥离纯python的继续提示
,而不是ipython的
…:
。因此将提示更改为
。但这可能不是您的选择。确切地说,因为代码来自一本书,而不是我的PromptPython应该能够处理文档说IPython会话代码可以从版本1开始粘贴。也许这是一个没有被注意到的回归(bug)。你的问题是你想删除这些点吗?@jeanrjc:我不这么认为-问题是ipython的粘贴魔法声称能够处理ipython提示,但显然不是这样。向ipython的问题跟踪者提交问题可能是个好主意:正如你指出的,你的示例工作得很好,问题是,尽管从书中粘贴它不会保留以前的空格…:因此缩进被破坏了。我认为IPython应该能够处理这个问题,可能是因为它是pdf。它是什么书?我知道,但是编辑应该知道,如果以后不能复制,让
过去是个坏主意。