Python脚本复制文本到剪贴板[复制]Python脚本复制文本到剪贴板[复制](Python sc

2019-06-17 10:30发布

这个问题已经在这里有一个答案:

  • 如何将字符串使用Python复制到剪贴板上的Windows? 17个回答

我只是需要一个Python脚本,文本复制到剪贴板。

该脚本被执行后,我需要的文本输出可以粘贴到另一个来源。 是否有可能写一个python脚本做这件工作?

Answer 1:

见Pyperclip 。 实施例(从Pyperclip站点获得):

import pyperclip
pyperclip.copy('The text to be copied to the clipboard.')
spam = pyperclip.paste()

此外,请参阅施乐 。 但它似乎有更多的依赖性。



Answer 2:

在Mac上我使用这个功能。

import os 
data = "hello world"
os.system("echo '%s' | pbcopy" % data)

它将“世界你好”复制到剪贴板。



Answer 3:

使用Tkinter的:

https://stackoverflow.com/a/4203897/2804197

try:
    from Tkinter import Tk
except ImportError:
    from tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append('i can has clipboardz?')
r.update() # now it stays on the clipboard after the window is closed
r.destroy()

(原作者: https://stackoverflow.com/users/449571/atomizer )



Answer 4:

Pyperclip似乎是完成这一任务。



Answer 5:

这是唯一使用为我工作的方式Python 3.5.2再加上它的实现W¯¯最简单/使用标准PyData套件

喊出来https://stackoverflow.com/users/4502363/gadi-oron的答案(我完全复制它)从使用Python如何将字符串复制到剪贴板上的Windows?

import pandas as pd
df=pd.DataFrame(['Text to copy'])
df.to_clipboard(index=False,header=False)

我写了一个小包装它,我把我的ipython轮廓<3



Answer 6:

要使用本机Python目录,使用:

import subprocess

def copy2clip(txt):
    cmd='echo '+txt.strip()+'|clip'
    return subprocess.check_call(cmd, shell=True)

然后使用:

copy2clip('This is on my clipboard!')

要调用的函数。



Answer 7:

GTK3:

#!/usr/bin/python3

from gi.repository import Gtk, Gdk


class Hello(Gtk.Window):

    def __init__(self):
        super(Hello, self).__init__()
        clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
        clipboard.set_text("hello world", -1)
        Gtk.main_quit()


def main():
    Hello()
    Gtk.main()

if __name__ == "__main__":
    main()


Answer 8:

我试试这个剪贴板0.0.4和它工作得很好。

https://pypi.python.org/pypi/clipboard/0.0.4

import clipboard
clipboard.copy("abc")  # now the clipboard content will be string "abc"
text = clipboard.paste()  # text will have the content of clipboard


Answer 9:

还有一个答案,以改善: https://stackoverflow.com/a/4203897/2804197和https://stackoverflow.com/a/25476462/1338797 (Tkinter的)。

Tkinter的是好的,因为它或者与Python(Windows)或容易安装(Linux)的纳入,因此需要为最终用户很少依赖。

在这里,我有一个“全面爆发”的例子,该副本的参数或标准输入,到剪贴板,和 - 当不上的Windows - 等待用户关闭应用程序:

import sys

try:
    from Tkinter import Tk
except ImportError:
    # welcome to Python3
    from tkinter import Tk
    raw_input = input

r = Tk()
r.withdraw()
r.clipboard_clear()

if len(sys.argv) < 2:
    data = sys.stdin.read()
else:
    data = ' '.join(sys.argv[1:])

r.clipboard_append(data)

if sys.platform != 'win32':
    if len(sys.argv) > 1:
        raw_input('Data was copied into clipboard. Paste and press ENTER to exit...')
    else:
        # stdin already read; use GUI to exit
        print('Data was copied into clipboard. Paste, then close popup to exit...')
        r.deiconify()
        r.mainloop()
else:
    r.destroy()

这展示:

  • 跨越的Py2和PY3进口Tk的
  • raw_inputprint()的相容性
  • 在需要时“取消隐藏” TK根窗口
  • 两种不同的方式等待出口在Linux上。


Answer 10:

PyQt5:

from PyQt5.QtWidgets import QApplication
from PyQt5 import QtGui
from PyQt5.QtGui import QClipboard
import sys


def main():


    app=QApplication(sys.argv)
    cb = QApplication.clipboard()
    cb.clear(mode=cb.Clipboard )
    cb.setText("Copy to ClipBoard", mode=cb.Clipboard)
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()


Answer 11:

这是@马丁托马的答案GTK3的修改过的版本。 我发现,原来解决导致永无止境的过程中,我的终端挂在我调用的脚本。 更改脚本如下解决了这个问题对我来说。

#!/usr/bin/python3

from gi.repository import Gtk, Gdk
import sys
from time import sleep

class Hello(Gtk.Window):

    def __init__(self):
        super(Hello, self).__init__()

        clipboardText = sys.argv[1]
        clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
        clipboard.set_text(clipboardText, -1)
        clipboard.store()


def main():
    Hello()



if __name__ == "__main__":
    main()

你可能会想改变什么clipboardText被分配到,在这个剧本就被分配到该脚本调用的参数。

在一个新鲜的Ubuntu 16.04安装,我发现我不得不安装python-gobject包装为它没有一个模块导入错误的工作。



文章来源: Python script to copy text to clipboard [duplicate]