Hướng dẫn how do you copy and paste text in python? - làm cách nào để sao chép và dán văn bản trong python?

Tôi chỉ cần một tập lệnh Python sao chép văn bản vào bảng tạm.

Sau khi tập lệnh được thực thi, tôi cần đầu ra của văn bản được dán vào một nguồn khác. Có thể viết một kịch bản Python làm công việc này không?

Hướng dẫn how do you copy and paste text in python? - làm cách nào để sao chép và dán văn bản trong python?

hỏi ngày 16 tháng 6 năm 2012 lúc 12:32Jun 16, 2012 at 12:32

3

Xem pyperclip. Ví dụ (lấy từ trang web pyperclip):

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

Ngoài ra, xem Xerox. Nhưng nó dường như có nhiều phụ thuộc hơn.

Hướng dẫn how do you copy and paste text in python? - làm cách nào để sao chép và dán văn bản trong python?

Vauhochzett

2.1361 Huy hiệu vàng16 Huy hiệu bạc34 Huy hiệu đồng1 gold badge16 silver badges34 bronze badges

Đã trả lời ngày 16 tháng 6 năm 2012 lúc 12:35Jun 16, 2012 at 12:35

Robertrobertrobert

32.1k8 Huy hiệu vàng52 Huy hiệu bạc72 Huy hiệu đồng8 gold badges52 silver badges72 bronze badges

4

Trên macOS, sử dụng

import subprocess 
data = "hello world"
subprocess.run("pbcopy", text=True, input=data)
0 để gửi văn bản của bạn thành
import subprocess 
data = "hello world"
subprocess.run("pbcopy", text=True, input=data)
1:

import subprocess 
data = "hello world"
subprocess.run("pbcopy", text=True, input=data)

Nó sẽ sao chép "Hello World" vào bảng tạm.

Đã trả lời ngày 28 tháng 6 năm 2013 lúc 18:27Jun 28, 2013 at 18:27

Hướng dẫn how do you copy and paste text in python? - làm cách nào để sao chép và dán văn bản trong python?

Kyle Kkyle kkyle k

4.8048 Huy hiệu vàng30 Huy hiệu bạc45 Huy hiệu Đồng8 gold badges30 silver badges45 bronze badges

5

Để sử dụng các thư mục Python bản địa, hãy sử dụng:

import subprocess

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

trên Mac, thay vào đó:

import subprocess

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

Sau đó sử dụng:

copy2clip('This is on my clipboard!')

để gọi chức năng.

Đã trả lời ngày 8 tháng 12 năm 2016 lúc 0:47Dec 8, 2016 at 0:47

BinyaminbinyaminBinyamin

5696 Huy hiệu bạc17 Huy hiệu đồng6 silver badges17 bronze badges

8

PyQt5:

from PyQt5.QtWidgets import QApplication
import sys

def main():
    app = QApplication(sys.argv)
    cb = QApplication.clipboard()
    cb.clear(mode=cb.Clipboard )
    cb.setText("Copy to ClipBoard", mode=cb.Clipboard)
    # Text is now already in the clipboard, no need for further actions.
    sys.exit()

if __name__ == "__main__":
    main()

Đã trả lời ngày 9 tháng 11 năm 2015 lúc 11:00Nov 9, 2015 at 11:00

AkshayakshayAkshay

4356 Huy hiệu bạc15 Huy hiệu Đồng6 silver badges15 bronze badges

2

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()

Đã trả lời ngày 25 tháng 2 năm 2015 lúc 15:29Feb 25, 2015 at 15:29

Martin Thomamartin ThomaMartin Thoma

Huy hiệu vàng 115K150575 Huy hiệu bạc886 Huy hiệu đồng150 gold badges575 silver badges886 bronze badges

1

Tôi thử clipboard này 0,0.4 và nó hoạt động tốt.

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

Đã trả lời ngày 28 tháng 6 năm 2016 lúc 6:34Jun 28, 2016 at 6:34

Du Pengdu PengDu Peng

3332 Huy hiệu bạc3 Huy hiệu Đồng2 silver badges3 bronze badges

2

Thêm một câu trả lời để cải thiện: https://stackoverflow.com/a/4203897/2804197 và https://stackoverflow.com/a/25476462/1338797 (tkinter).

Tkinter là tốt, bởi vì nó được bao gồm trong Python (Windows) hoặc dễ cài đặt (Linux) và do đó đòi hỏi rất ít sự phụ thuộc cho người dùng cuối.

Ở đây tôi có một ví dụ "toàn diện", sao chép các đối số hoặc đầu vào tiêu chuẩn, vào bảng tạm và - khi không trên Windows - chờ người dùng đóng ứng dụng:

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()

Điều này giới thiệu:

  • Nhập TK trên PY2 và PY3
  • import subprocess 
    data = "hello world"
    subprocess.run("pbcopy", text=True, input=data)
    
    2 và
    import subprocess 
    data = "hello world"
    subprocess.run("pbcopy", text=True, input=data)
    
    3 Khả năng tương thích
  • cửa sổ rễ "usingingiding" tk khi cần
  • Chờ đợi lối ra trên Linux theo hai cách khác nhau.

Đã trả lời ngày 4 tháng 11 năm 2015 lúc 13:35Nov 4, 2015 at 13:35

Tomasz Gandortomasz GandorTomasz Gandor

7.6652 Huy hiệu vàng59 Huy hiệu bạc54 Huy hiệu đồng2 gold badges59 silver badges54 bronze badges

3

Đây là phiên bản thay đổi của câu trả lời của @martin Thoma cho GTK3. Tôi thấy rằng giải pháp ban đầu dẫn đến quá trình không bao giờ kết thúc và thiết bị đầu cuối của tôi được treo khi tôi gọi kịch bản. Thay đổi kịch bản thành phần sau đã giải quyết vấn đề cho tôi.GTK3. I found that the original solution resulted in the process never ending and my terminal hung when I called the script. Changing the script to the following resolved the issue for me.

#!/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()

Bạn có thể sẽ muốn thay đổi bảng điều chỉnh nào được gán cho, trong tập lệnh này, nó được gán cho tham số mà tập lệnh được gọi với.

Trên cài đặt mới của Ubuntu 16.04, tôi thấy rằng tôi phải cài đặt gói

import subprocess 
data = "hello world"
subprocess.run("pbcopy", text=True, input=data)
4 để nó hoạt động mà không có lỗi nhập mô -đun.

Hướng dẫn how do you copy and paste text in python? - làm cách nào để sao chép và dán văn bản trong python?

Tế bào thần kinh

4.7104 Huy hiệu vàng33 Huy hiệu bạc54 Huy hiệu Đồng4 gold badges33 silver badges54 bronze badges

Đã trả lời ngày 25 tháng 4 năm 2016 lúc 11:34Apr 25, 2016 at 11:34

Hướng dẫn how do you copy and paste text in python? - làm cách nào để sao chép và dán văn bản trong python?

Chương trìnhProgrogramsterProgramster

Huy hiệu vàng 11,9k88 gold badges46 silver badges54 bronze badges

Lệnh sao chép trong Python là gì?

Phương thức CopyFile () trong Python được sử dụng để sao chép nội dung của tệp nguồn vào tệp đích.Siêu dữ liệu của tập tin không được sao chép.Nguồn và đích phải đại diện cho một tệp và đích phải được ghi. method in Python is used to copy the content of the source file to the destination file. The metadata of the file is not copied. Source and destination must represent a file and destination must be writable.

Pyperclip trong Python là gì?

PyperClip là một mô-đun Python đa nền tảng cho các chức năng clipboard sao chép và dán.Nó hoạt động với Python 2 và 3. Cài đặt trên Windows: PIP Cài đặt pyperclip.Cài đặt trên Linux/MacOS: Cài đặt pyperclip PIP3.Al Sweigart al@InventWithPython.a cross-platform Python module for copy and paste clipboard functions. It works with Python 2 and 3. Install on Windows: pip install pyperclip. Install on Linux/macOS: pip3 install pyperclip. Al Sweigart al@inventwithpython.