0

由于我将 pandas 从 0.11 版更新到 0.12 版,read_clipboard 似乎不再起作用:

import pandas as pd

df = pd.read_clipboard()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-6dead334eb54> in <module>()
----> 1 df = pd.read_clipboard()

C:\Python33\lib\site-packages\pandas\io\clipboard.py in read_clipboard(**kwargs)
     16     from pandas.io.parsers import read_table
     17     text = clipboard_get()
---> 18     return read_table(StringIO(text), **kwargs)
     19 
     20 

TypeError: initial_value must be str or None, not bytes

我所做的是:

  • 在 Excel 2010 中打开一个 csv 文件

  • 复制一系列单元格,包括标题

  • 如上述代码块所述,在 iPython Qt 控制台中执行 read_clipboard

降级到 0.11 后,此过程再次正常工作。我正在为 python 3.3 Win7 32 位使用熊猫。

这是熊猫的错误​​吗?有关如何解决此问题的任何建议?

4

2 回答 2

2

它是呈现给 py3 的字符串中的一个错误;我将在 master 中修复它,但您可以进行此本地编辑。

C:\python33\Lib\site-packages\pandas\io\clipboard.py

text = clipboard_get()

添加text = text.decode('UTF-8')

显然剪贴板例程在py3中给你返回字节(而不是字符串)

于 2013-08-14T20:08:40.113 回答
0

我一直在寻找解决方案,似乎与 ctypes 有关。你可以在这里找到更多信息:https ://github.com/pandas-dev/pandas/issues/13946

一种解决方法可能是替换调用

text = clipboard_get()

C:\python33\Lib\site-packages\pandas\io\clipboard.py 

具有以下内容:

    from tkinter import Tk
    r = Tk()
    text = r.selection_get(selection="CLIPBOARD")

这是带有编辑的图像

于 2016-10-21T20:13:33.460 回答