问题 使用剪贴板将Excel数据复制到IPython中的python列表中? [关闭]


有没有办法执行以下工作流程:

  1. 在Excel电子表格中选择单元格
  2. 使用Ctrl + C复制它们
  3. 以python列表或numpy数组的形式将选定单元格的内容放入IPython shell中?

5244
2017-08-19 10:49


起源

实际上很清楚@Norfeldt在问什​​么。我会稍微编辑一下这个问题。 - Viktor Kerkez
现在已经完全明白了被问到的是什么。这个问题应该重新开启!! - Robino


答案:


更新: 好像是 readline @PauloAlmeida提到的东西默认在IPython的1.0版本中打开。所以你要做的就是:

  1. from numpy import array
  2. 从电子表格中复制单元格
  3. 击中 Alt+V 代替 Ctrl+V

你会在IPython中得到类似的东西:

array([[1, 1], [2, 2]])

或者您可以使用pandas库 read_clipboard 方法。

import pandas as pd
pd.read_clipboard()            # If you have selected the headers
pd.read_clipboard(header=None) # If you haven't selected the headers

这将返回一个pandas DataFrame对象,其作用类似于电子表格。您可以在他们的官方中找到更多相关信息 文件


14
2017-08-19 11:33



这正是我所遗漏的。谢谢! - Norfeldt


这是我通常做的事情:

1:获取一个csv文件

将所需的单元格复制粘贴到新的Excel文档中。 点击“文件”,然后点击“另存为”。 选择“另存为类型:CSV”。 关闭Excel并使用记事本或其他编辑器打开文件。

现在你有这样的事情:

1, 2, 3
4, 5, 6

2:获取python列表

你也可以

  • 使用 CSV 加载您的csv文件;要么
  • 使用编辑器的搜索/替换功能用'['和']'替换行的开始/结束,然后将粘贴复制到ipython。

0
2017-08-19 11:17





如果您使用的是Windows,则可以使用 PyReadline,具有智能粘贴功能:

  • 使用剪贴板复制和粘贴
  • 智能粘贴,方便用于ipython。将制表符分隔数据转换为python列表或numpy数组。

另见 剪贴板功能的文档

ipython_paste

粘贴Windows剪贴板。如果enable_ipython_paste_list_of_lists为True,则尝试将tabseparated数据转换为列表列表的repr或   数组的repr。如果enable_ipython_paste_for_paths == True则更改\\   到\和空间到\ space。


0
2017-08-19 12:33



你如何启用这个功能,因为我无法做到这一点: - / - Viktor Kerkez
我没有在原来的答案中包含这个,因为它已经有几年了,但也许它仍然有用(有关将ipython_paste命令绑定到密钥的信息): mail.scipy.org/pipermail/ipython-user/2010-January/006813.html - Paulo Almeida