首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将Jupyter笔记本中单元格的输出复制到剪贴板?

如何将Jupyter笔记本中单元格的输出复制到剪贴板?
EN

Stack Overflow用户
提问于 2017-05-28 16:53:53
回答 5查看 37.1K关注 0票数 38

如何将Jupyter notebook中单元格的输出复制到剪贴板,而不必通过拖放将其选中?

EN

回答 5

Stack Overflow用户

发布于 2017-05-28 17:08:59

Jupyter notebook在浏览器中运行,因此您可以使用一些javascript来选择单元格并将其复制到剪贴板。经过反复试验,我想出了这个小书签:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
javascript:(function%20()%20%7B%20function%20SelectText(element)%20%7B%20var%20range%3B%20var%20selection%3B%20if%20(document.body.createTextRange)%20%7B%20range%20%3D%20document.body.createTextRange()%3B%20range.moveToElementText(element)%3B%20range.select()%3B%20copy2clipboard(range.text%2C%20element.innerHTML)%3B%20document.getSelection().removeAllRanges()%3B%20%7D%20else%20if%20(window.getSelection)%20%7B%20selection%20%3D%20window.getSelection()%3B%20range%20%3D%20document.createRange()%3B%20range.selectNodeContents(element)%3B%20selection.removeAllRanges()%3B%20selection.addRange(range)%3B%20copy2clipboard(selection.toString()%2C%20element.innerHTML)%3B%20selection.removeAllRanges()%3B%20%7D%20%7D%3B%20function%20copy2clipboard(text%2C%20html)%20%7B%20function%20listener(e)%20%7B%20e.clipboardData.setData('text%2Fplain'%2C%20text)%3B%20e.clipboardData.setData('text%2Fhtml'%2C%20html)%3B%20e.preventDefault()%3B%20%7D%20document.addEventListener('copy'%2C%20listener)%3B%20document.execCommand('copy')%3B%20document.removeEventListener('copy'%2C%20listener)%3B%20%7D%3B%20%24('%23notebook-container').on('mouseenter'%2C%20'.input%2C%20.output_wrapper'%2C%20function%20()%20%7B%20if%20(%24(this).find('i%3Alast').length)%20%7B%20%24(this).find('i%3Alast').show()%3B%20%7D%20else%20%7B%20%24(this).css(%7B%20'position'%3A%20'relative'%20%7D).append(%24('%3Ci%20style%3D%22position%3Aabsolute%3B%20top%3A7px%3B%20left%3A%207px%3B%22%20class%3D%22fa-copy%20fa%22%3E%3C%2Fi%3E').on('click'%2C%20function%20()%20%7B%20SelectText(%24(this).parent().find('.input_area%2C%20.output')%20%5B0%5D)%3B%20%24(this).slideUp()%3B%20%7D))%3B%20%7D%20%7D)%3B%20%24('%23notebook-container').on('mouseleave'%2C%20'.input%2C%20.output_wrapper'%2C%20function%20()%20%7B%20%24(this).find('i%3Alast').hide()%3B%20%7D)%3B%20%7D)%20()%3B

将其添加到您的书签中,并在笔记本页面上运行。

它是如何工作的

它为每个输入和输出单元格添加一个小的复制图标,该图标显示在hover.

  • Clicking上复制图标选择相应的单元格内容,将其发送到
  1. ,然后取消选择。内容以 text /纯text/html格式复制,因此可以使用html copy复制文本、表格、图像和绘图,图标消失以提供一些反馈,并在下一个悬停事件时显示。

它应该可以在任何现代浏览器上工作,包括IE11。

以下是解码后的源代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(function () {
  function SelectText(element) {
    var range;
    var selection;
    if (document.body.createTextRange) {
      range = document.body.createTextRange();
      range.moveToElementText(element);
      range.select();
      copy2clipboard(range.text, element.innerHTML);
      document.getSelection().removeAllRanges();
    } else if (window.getSelection) {
      selection = window.getSelection();
      range = document.createRange();
      range.selectNodeContents(element);
      selection.removeAllRanges();
      selection.addRange(range);
      copy2clipboard(selection.toString(), element.innerHTML);
      selection.removeAllRanges();
    }
  };
  function copy2clipboard(text, html) {
    function listener(e) {
      e.clipboardData.setData('text/plain', text);
      e.clipboardData.setData('text/html', html);
      e.preventDefault();
    }
    document.addEventListener('copy', listener);
    document.execCommand('copy');
    document.removeEventListener('copy', listener);
  };
  $('#notebook-container').on('mouseenter', '.input, .output_wrapper', function () {
    if ($(this).find('i:last').length) {
      $(this).find('i:last').show();
    } else {
      $(this).css({
        'position': 'relative'
      }).append($('<i style=\"position:absolute; top:7px; left: 7px;\" class=\"fa-copy fa\"></i>').on('click', function () {
        SelectText($(this).parent().find('.input_area, .output') [0]);
        $(this).slideUp();
      }));
    }
  });
  $('#notebook-container').on('mouseleave', '.input, .output_wrapper', function () {
    $(this).find('i:last').hide();
  });
}) ();

Bookmarklet是通过删除代码中的换行符并通过encodeURIComponent()函数运行来创建的。

老答案

在python中,有几种方法可以使用tkinter、win32或ctype将数据复制到剪贴板。但是如果你使用的是Jupyter notebook,你可能也会使用pandas。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
df = pd.DataFrame(['Copy me to clipboard'])
df.to_clipboard(index=False,header=False)
票数 25
EN

Stack Overflow用户

发布于 2018-10-11 17:41:36

您可以尝试使用pyperclip -一个将字符串复制到系统剪贴板的第三方包。

给定的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pyperclip as clip


# Sample Data
res = [(str(x*100), x) for x in range(1, 10)]
res

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[('100', 1), ('200', 2), ('300', 3),
 ('400', 4), ('500', 5), ('600', 6), 
 ('700', 7), ('800', 8), ('900', 9)]

代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
clip.copy(f"{res}")
#clip.copy("{}".format(res))                           # python < 3.6
clip.paste()                                           # or Ctrl + V

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[('100', 1), ('200', 2), ('300', 3),
 ('400', 4), ('500', 5), ('600', 6),
 ('700', 7), ('800', 8), ('900', 9)]
票数 15
EN

Stack Overflow用户

发布于 2019-01-24 12:34:41

我用的是Jupyter实验室。可以右键单击要复制的输出单元格,然后选择

为Output创建新视图。这将把输出放在一个单独的屏幕上。在新的输出屏幕上,它将允许您使用CRTL + C或右键单击进行复制。

希望这能有所帮助。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44229820

复制
相关文章
利用 Resetter 将 Ubuntu 系发行版重置为初始状态
这个 Resetter 工具可以将 Ubuntu、 Linux Mint (以及其它基于 Ubuntu 的发行版)返回到其初始配置。
会长君
2023/04/26
1.3K0
类变量与对象变量
# 类变量与对象变量 # 代码 # coding=UTF-8,类变量与对象变量 class Robot: """表示有一个带有名字的机器人。""" # 一个类变量,用来计数机器人的数量 population = 0 # 这是一个类变量,属于Robot类 def __init__(self, name): # name变量属于一个对象(通过self分配),因此它是一个对象变量 """初始化数据""" self.name = name
benym
2022/07/14
9280
Python面向对象编程-类和对象-实例变量和类变量
实例变量是指属于特定对象的变量。每个类的实例都具有自己的实例变量,它们的值可以不同。在上面的示例中,Person 类的 name 和 age 属性都是实例变量,因为它们属于特定的 Person 对象。
玖叁叁
2023/04/19
8470
C++自定义类的对象对于其私有变量的访问
以下语法规则是不言自明的: 在自定义类A的成员函数中,可以对该类的私有成员变量进行赋值等操作,但是在类定义之外所声明的A类的对象aobj是不可以直接访问A类的私有变量的,只有通过在A类的成员函数中开放访问其私有变量的接口,对象aobj才可以对私有变量进行操作。
大忽悠爱学习
2021/11/15
1.5K0
C++ 类成员变量初始化
本文是对《Effective C++》的”Item 4: Make sure that objects are initialized before they’re used”的笔记和验证。
零式的天空
2022/03/08
9470
C++ 类成员变量初始化
本文是对《Effective C++》的”Item 4: Make sure that objects are initialized before they’re used”的笔记和验证。
mzlogin
2020/04/14
2.3K0
【C++】匿名对象 ② ( 将 “ 匿名对象 “ 初始化给变量 | 将 “ 匿名对象 “ 赋值给变量 )
" 匿名对象 " 的 作用域 仅限于其所在的 表达式 , 这句表达式 执行完毕后 , 匿名对象 自动销毁 ;
韩曙亮
2023/10/15
3960
【C++】匿名对象 ② ( 将 “ 匿名对象 “ 初始化给变量 | 将 “ 匿名对象 “ 赋值给变量 )
【Flutter】Dart 面向对象 ( 类定义 | 类的继承 | 私有变量 | 可选参数 | 默认参数 | 初始化列表 )
使用 class 关键字 , 定义 Dart 类 , 所有的 Dart 类默认继承 Object 类 , 其中定义两个变量 , 定义一个标准的构造方法 , 构造方法中使用 this.name 表示自有参数 ;
韩曙亮
2023/03/28
2K0
C++_类型&变量&类和对象
数据类型(type) 简称类型 是具有相同特征的数据的集合,是一个抽象概念 C++的数据类型主要分为三种: 原始数据类型:内置或预定义的数据类型,用户可以直接使用它们声明变量。例如:int,char,float,bool等 整数、字符、布尔型、浮点、双浮点数、void、宽字符 等 派生数据类型:从原始或内置数据类型派生的数据类型 函数 数组 指针 引用 用户自定义类型:这些数据类型由用户自己定义 类 结构体 union:在并集中,所有成员共享相同的内存位置 枚举类型 typedef:为 复杂的声明 定义 简
用户10551528
2023/05/09
3630
C++_类型&变量&类和对象
java类和对象——变量赋值方法
此处的set和get的方法可以用 atl + insert 选择Getter and Setting实现
小雨的分享社区
2022/10/26
1.1K0
Python 面向对象编程:类、对象、初始化和方法详解
Python 是一种面向对象的编程语言。在 Python 中,几乎所有东西都是对象,都具有其属性和方法。
小万哥
2023/10/25
3710
Python 面向对象编程:类、对象、初始化和方法详解
关于类的对象创建与初始化
今天,我们就来解决一个问题,一个类实例究竟要经过多少个步骤才能被创建出来,也就是下面这行代码的背后,JVM 做了哪些事情? Object obj = new Object(); 当虚拟机接受到一条 new 指令时,首先会拿指令后的参数,也就是我们类的符号引用,于方法区中进行检查,看是否该类已经被加载,如果没有则需要先进行该类的加载操作。 一旦该类已经被加载,那么虚拟机会根据类型信息在堆中分配该类对象所需要的内存空间,然后返回该对象在堆中的引用地址。 一般而言,虚拟机会在 new 指令执行结束后,显式调
Single
2018/04/17
8230
关于类的对象创建与初始化
关于类的对象创建与初始化
今天,我们就来解决一个问题,一个类实例究竟要经过多少个步骤才能被创建出来,也就是下面这行代码的背后,JVM 做了哪些事情?
Single
2018/04/10
1.7K4
关于类的对象创建与初始化
vector>初始化_vector如何重置
注意:vector<int> a(nums.begin()+1, nums.end()-2);中a包含nums.begin()+1,不包含nums.end()-2,也就是包含的区间是左闭右开区间
全栈程序员站长
2022/09/29
8870
Mysql重置初始密码的方法
以下命令行代码均在管理员模式下操作 命令行exe文件目录:C:\Windows\System32\cmd.exe -> 右键 -> 以"管理员模式运行"
红目香薰
2022/11/29
2.5K0
Mysql重置初始密码的方法
Xcode 恢复初始状态
我想问题可以是出在最新的 Xcode 11.2.1 版本上,我先下载一个 Xcode 10.3 版本看看能不能运行。
iOSDevLog
2019/12/02
2.4K0
以呼叫中心为例解释如何将有状态设计转换成无状态设计?
在日常开发中,我们经常会到"有状态"服务设计与"无状态"服务设计,何谓“无状态”?
菩提树下的杨过
2020/12/08
1.4K0
python--初始面向对象:类的相关知识,对象的相关知识
当然很简单,两个角色,1个人物,1个boss,且人物和boss都有不同的技能,比如人物用觉醒技能秒了boss,掉了xx装备,boss用大招秒了人物,人物死亡,怎么描述这种不同的人物和他们的功能呢
py3study
2018/08/02
4100
Python面向对象中的类变量,实例变量怎么来理解?
前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个类变量和实例变量的问题,这里拿出来给大家分享下,一起学习下。
前端皮皮
2022/08/17
1.7K0
Python面向对象中的类变量,实例变量怎么来理解?
点击加载更多

相似问题

如何将列表重置为其初始状态

10

如何将所有变量重置为初始状态?

22

如何将react通量存储重置为其初始状态?

14

如何将远程git分支重置为其初始状态

213

将对象重置为初始状态

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文