来自云托管 jupyter 的 pandas.read_clipboard?

Nat*_*oyd 7 pandas jupyter jupyterhub jupyter-lab google-colaboratory

我正在服务器上运行 JupyterHub 的 Data8 实例,pd.read_clipboard()但似乎不起作用。我在 google colab 中看到了同样的问题。

import pandas as pd
pd.read_clipboard()
Run Code Online (Sandbox Code Playgroud)

错误如下:

---------------------------------------------------------------------------
PyperclipException                        Traceback (most recent call last)
<ipython-input-2-8cbad928c47b> in <module>()
----> 1 pd.read_clipboard()

/opt/conda/lib/python3.6/site-packages/pandas/io/clipboards.py in read_clipboard(sep, **kwargs)
     29     from pandas.io.clipboard import clipboard_get
     30     from pandas.io.parsers import read_table
---> 31     text = clipboard_get()
     32 
     33     # try to decode (if needed on PY3)

/opt/conda/lib/python3.6/site-packages/pandas/io/clipboard/clipboards.py in __call__(self, *args, **kwargs)
    125 
    126         def __call__(self, *args, **kwargs):
--> 127             raise PyperclipException(EXCEPT_MSG)
    128 
    129         if PY2:

PyperclipException: 
    Pyperclip could not find a copy/paste mechanism for your system.
    For more information, please visit https://pyperclip.readthedocs.org
Run Code Online (Sandbox Code Playgroud)

有没有办法让这个工作?

Kor*_*ich 1

不。机器在云端运行。那里的 Python 无法访问您的本地计算机来获取剪贴板内容。

我尝试了 Javascript Clipboad api,但它不起作用,可能是因为输出位于 iframe 中,而 iframe 也不允许访问剪贴板。如果是的话,这会起作用

from google.colab.output import eval_js
text = eval_js("navigator.clipboard.readText()")
Run Code Online (Sandbox Code Playgroud)