python如何输出结果至剪贴板_将“print”的输出直接复制到剪贴板

Python没有内置剪贴板api,除了作为tkinterGUI的一部分,但是PyPI上有很多库都有。在

例如,使用^{},可以将任何字符串复制到剪贴板,如下所示:In[56]: import pyperclip

In[57]: pyperclip.copy(view_code)

但是您可以使用tkinter。根据您的平台,无论您使用的是控制台模式还是qtconsole会话等,这可能不起作用,或者可能需要弹出一个不需要的窗口,但是您可以尝试一下并看到:

^{pr2}$

如果你的设置需要你显示一个窗口(例如,我认为这会在Windows上的控制台模式会话中发生),你仍然可以在没有太多干扰的情况下完成。如果您感兴趣,请参阅this answer, suggested by J.Doe。在

但是,只写一个文件可能更简单、更有用:In[58}: with open('spam.txt', 'w') as f: f.write(view_code)

或者,由于您使用的是IPython,所以可以使用%save或其他各种魔术命令。(请看this question这样我就不必在这里一一回顾了。)

或者,有多个IPython插件的第三方实现可以为您提供剪贴板复制命令,比如this one(我刚刚在随机搜索中找到了它,所以我不支持它或任何东西……但它似乎可以工作):In[61]: %clip view_code

如果出于某种原因确实需要捕获print的输出,那么两种显而易见的方法是monkeypatch或shadow print,或者修补{}。例如:import builtins

import io

import sys

def print(*args, **kw):

if kw.get('file', sys.stdout) is sys.stdout:

buf = io.StringIO()

builtins.print(*args, **kw, file=buf)

pyperclip.copy(buf.getvalue())

builtins.print(*args, **kw)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值