Hướng dẫn how do i paste data from clipboard in python? - làm cách nào để dán dữ liệu từ khay nhớ tạm vào python?

135

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Làm cách nào để đọc văn bản từ clipboard (Windows) với Python?

Hướng dẫn how do i paste data from clipboard in python? - làm cách nào để dán dữ liệu từ khay nhớ tạm vào python?

DREFTYMAC

30.4K26 Huy hiệu vàng116 Huy hiệu bạc178 Huy hiệu đồng26 gold badges116 silver badges178 bronze badges

Hỏi ngày 19 tháng 9 năm 2008 lúc 11:09Sep 19, 2008 at 11:09

2

Bạn có thể sử dụng mô -đun có tên Win32Clipboard, là một phần của PYWIN32.

Dưới đây là một ví dụ đầu tiên đặt dữ liệu clipboard sau đó nhận được nó:

import win32clipboard

# set clipboard data
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText('testing 123')
win32clipboard.CloseClipboard()

# get clipboard data
win32clipboard.OpenClipboard()
data = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
print data

Một lời nhắc nhở quan trọng từ tài liệu:

Khi cửa sổ đã hoàn tất việc kiểm tra hoặc thay đổi bảng tạm, hãy đóng bảng tạm bằng cách gọi ClostClipboard. Điều này cho phép các cửa sổ khác truy cập vào bảng tạm. Không đặt một đối tượng trên bảng tạm sau khi gọi ClostClipboard.

Hướng dẫn how do i paste data from clipboard in python? - làm cách nào để dán dữ liệu từ khay nhớ tạm vào python?

Graham

2.5553 Huy hiệu vàng15 Huy hiệu bạc 30 Huy hiệu Đồng3 gold badges15 silver badges30 bronze badges

Đã trả lời ngày 19 tháng 9 năm 2008 lúc 11:20Sep 19, 2008 at 11:20

SakinsakinSakin

3.2473 Huy hiệu vàng23 Huy hiệu bạc27 Huy hiệu đồng3 gold badges23 silver badges27 bronze badges

5

Bạn có thể dễ dàng thực hiện việc này thông qua mô-đun tích hợp Tkinter, về cơ bản là một thư viện GUI. Mã này tạo ra một tiện ích trống để lấy nội dung Clipboard từ HĐH.

from tkinter import Tk  # Python 3
#from Tkinter import Tk # for Python 2.x
Tk().clipboard_get()

Đã trả lời ngày 24 tháng 5 năm 2014 lúc 11:58May 24, 2014 at 11:58

Hướng dẫn how do i paste data from clipboard in python? - làm cách nào để dán dữ liệu từ khay nhớ tạm vào python?

Kmonsoorkmonsoorkmonsoor

7.1327 Huy hiệu vàng42 Huy hiệu bạc55 Huy hiệu Đồng7 gold badges42 silver badges55 bronze badges

1

Tôi thấy PyPerclip là cách dễ nhất để có quyền truy cập vào bảng tạm từ Python:

  1. Cài đặt pyperclip:

    from tkinter import Tk  # Python 3
    #from Tkinter import Tk # for Python 2.x
    Tk().clipboard_get()
    
    3

  2. Usage:

import pyperclip
    
s = pyperclip.paste()
pyperclip.copy(s)
    
# the type of s is string

Với hỗ trợ Windows, Linux và Mac, và dường như cũng hoạt động với các ký tự không phải ASCII. Các ký tự được thử nghiệm bao gồm ± ° © © αβγθδψφåäö

Đã trả lời ngày 3 tháng 7 năm 2016 lúc 15:54Jul 3, 2016 at 15:54

Hướng dẫn how do i paste data from clipboard in python? - làm cách nào để dán dữ liệu từ khay nhớ tạm vào python?

np8np8np8

23.4K10 Huy hiệu vàng80 Huy hiệu bạc90 Huy hiệu Đồng10 gold badges80 silver badges90 bronze badges

6

Nếu bạn không muốn cài đặt các gói bổ sung,

from tkinter import Tk  # Python 3
#from Tkinter import Tk # for Python 2.x
Tk().clipboard_get()
4 cũng có thể hoàn thành công việc.

import ctypes

CF_TEXT = 1

kernel32 = ctypes.windll.kernel32
kernel32.GlobalLock.argtypes = [ctypes.c_void_p]
kernel32.GlobalLock.restype = ctypes.c_void_p
kernel32.GlobalUnlock.argtypes = [ctypes.c_void_p]
user32 = ctypes.windll.user32
user32.GetClipboardData.restype = ctypes.c_void_p

def get_clipboard_text():
    user32.OpenClipboard(0)
    try:
        if user32.IsClipboardFormatAvailable(CF_TEXT):
            data = user32.GetClipboardData(CF_TEXT)
            data_locked = kernel32.GlobalLock(data)
            text = ctypes.c_char_p(data_locked)
            value = text.value
            kernel32.GlobalUnlock(data_locked)
            return value
    finally:
        user32.CloseClipboard()

print(get_clipboard_text())

Đã trả lời ngày 25 tháng 4 năm 2014 lúc 5:54Apr 25, 2014 at 5:54

Kichikkichikkichik

31.5K6 Huy hiệu vàng87 Huy hiệu bạc106 Huy hiệu đồng6 gold badges87 silver badges106 bronze badges

5

Câu trả lời được nâng cấp nhiều nhất ở trên là kỳ lạ theo cách mà nó chỉ đơn giản là xóa bảng tạm và sau đó nhận được nội dung (lúc đó trống rỗng). Người ta có thể xóa bảng tạm để chắc chắn rằng một số loại nội dung clipboard như "văn bản được định hình" không "bao gồm" nội dung văn bản đơn giản mà bạn muốn lưu trong bảng tạm.

Đoạn mã sau đây thay thế tất cả các dòng mới trong bảng tạm bằng không gian, sau đó xóa tất cả các không gian đôi và cuối cùng lưu nội dung trở lại bảng tạm:

import win32clipboard

win32clipboard.OpenClipboard()
c = win32clipboard.GetClipboardData()
win32clipboard.EmptyClipboard()
c = c.replace('\n', ' ')
c = c.replace('\r', ' ')
while c.find('  ') != -1:
    c = c.replace('  ', ' ')
win32clipboard.SetClipboardText(c)
win32clipboard.CloseClipboard()

Đã trả lời ngày 19 tháng 6 năm 2012 lúc 8:00Jun 19, 2012 at 8:00

Hướng dẫn how do i paste data from clipboard in python? - làm cách nào để dán dữ liệu từ khay nhớ tạm vào python?

sinh raborn

5081 Huy hiệu vàng4 Huy hiệu bạc13 Huy hiệu đồng1 gold badge4 silver badges13 bronze badges

Thư viện tiêu chuẩn Python làm điều đó ...

try:
    # Python3
    import tkinter as tk
except ImportError:
    # Python2
    import Tkinter as tk

def getClipboardText():
    root = tk.Tk()
    # keep the window from showing
    root.withdraw()
    return root.clipboard_get()

Ankostis

7,8543 huy hiệu vàng41 Huy hiệu bạc58 Huy hiệu đồng3 gold badges41 silver badges58 bronze badges

Đã trả lời ngày 4 tháng 4 năm 2018 lúc 8:42Apr 4, 2018 at 8:42

Hướng dẫn how do i paste data from clipboard in python? - làm cách nào để dán dữ liệu từ khay nhớ tạm vào python?

2

Đối với chương trình giao diện điều khiển của tôi, các câu trả lời với tkinter ở trên không hoàn toàn phù hợp với tôi vì .destroy () luôn gây ra lỗi,:console program the answers with tkinter above did not quite work for me because the .destroy() always gave an error,:

Không thể gọi lệnh "Sự kiện": Ứng dụng đã bị phá hủy trong khi thực thi ...

hoặc khi sử dụng .WithDraw () cửa sổ bảng điều khiển không lấy lại tiêu điểm.

Để giải quyết điều này, bạn cũng phải gọi .Update () trước .destroy (). Thí dụ:

# Python 3
import tkinter

r = tkinter.Tk()
text = r.clipboard_get()
r.withdraw()
r.update()
r.destroy()

R.WithDraw () ngăn chặn khung hình hiển thị cho một milisecond, và sau đó nó sẽ bị phá hủy cho trọng tâm trở lại bảng điều khiển.

Đã trả lời ngày 17 tháng 1 năm 2015 lúc 1:08Jan 17, 2015 at 1:08

user136036user136036user136036

9,9906 Huy hiệu vàng42 Huy hiệu bạc46 Huy hiệu đồng6 gold badges42 silver badges46 bronze badges

Sử dụng bảng tạm thư của Pythons

Nó chỉ đơn giản là được sử dụng như thế này:

import clipboard
clipboard.copy("this text is now in the clipboard")
print clipboard.paste()  

Đã trả lời ngày 27 tháng 4 năm 2016 lúc 10:19Apr 27, 2016 at 10:19

DandanDan

Huy hiệu đồng 1491 Bạc4 Huy hiệu đồng1 silver badge4 bronze badges

3

Sau 12 năm, tôi có một giải pháp và bạn có thể sử dụng nó mà không cần cài đặt bất kỳ gói nào.

from tkinter import Tk, TclError
from time import sleep

while True:
    try:
        clipboard = Tk().clipboard_get()
        print(clipboard)
        sleep(5)
    except TclError:
        print("Clipboard is empty.")
        sleep(5)

Đã trả lời ngày 29 tháng 4 năm 2021 lúc 19:17Apr 29, 2021 at 19:17

Một thủ thuật không trực tiếp lắm:

Sử dụng phím nóng pyautogui:

Import pyautogui
pyautogui.hotkey('ctrl', 'v')

Do đó, bạn có thể dán dữ liệu bảng tạm như bạn muốn.

Đã trả lời ngày 9 tháng 7 năm 2019 lúc 7:06Jul 9, 2019 at 7:06

Hướng dẫn how do i paste data from clipboard in python? - làm cách nào để dán dữ liệu từ khay nhớ tạm vào python?

1

from tkinter import Tk  # Python 3
#from Tkinter import Tk # for Python 2.x
Tk().clipboard_get()
0

Đã trả lời ngày 7 tháng 12 năm 2021 lúc 4:21Dec 7, 2021 at 4:21

Hướng dẫn how do i paste data from clipboard in python? - làm cách nào để dán dữ liệu từ khay nhớ tạm vào python?

AthiiathiiAthii

952 huy hiệu bạc11 huy hiệu đồng2 silver badges11 bronze badges

1

Tại sao không thử gọi PowerShell?

from tkinter import Tk  # Python 3
#from Tkinter import Tk # for Python 2.x
Tk().clipboard_get()
1

Đã trả lời ngày 18 tháng 2 lúc 5:36Feb 18 at 5:36

Hướng dẫn how do i paste data from clipboard in python? - làm cách nào để dán dữ liệu từ khay nhớ tạm vào python?

1

Đối với người dùng Anaconda: Các bản phân phối không đi kèm với pyperclip, nhưng chúng đi kèm với gấu trúc trong đó phân phối lại pyperclip:

from tkinter import Tk  # Python 3
#from Tkinter import Tk # for Python 2.x
Tk().clipboard_get()
2

Tôi thấy điều này dễ sử dụng hơn pywin32 (cũng được bao gồm trong phân phối).

Đã trả lời ngày 6 tháng 12 năm 2021 lúc 16:14Dec 6, 2021 at 16:14

asdf101asdf101asdf101

4835 Huy hiệu bạc16 Huy hiệu Đồng5 silver badges16 bronze badges

Làm thế nào để bạn dán từ clipboard trong Python?

Để sao chép văn bản vào bảng tạm, chuyển một chuỗi vào pyperclip.Sao chép ().Để dán văn bản từ bảng tạm, hãy gọi pyperclip.paste () và văn bản sẽ được trả về dưới dạng giá trị chuỗi.call pyperclip. paste() and the text will be returned as a string value.

Python có thể truy cập vào bảng tạm không?

Trong Python, bạn có thể sao chép văn bản (chuỗi) vào bảng tạm và dán (nhận) văn bản từ bảng tạm với pyperclip.Bạn cũng có thể theo dõi bảng tạm để nhận văn bản khi được cập nhật.asweigart/pyperclip: Mô-đun Python cho các chức năng clipboard đa nền tảng.you can copy text (string) to the clipboard and paste (get) text from the clipboard with pyperclip. You can also monitor the clipboard to get the text when updated. asweigart/pyperclip: Python module for cross-platform clipboard functions.

Làm thế nào để bạn dán một cái gì đó vào python?

Để sao chép văn bản, chỉ cần chọn nó và nhấn Ctrl-C (Command-C trên Mac).Nếu điểm nổi bật đánh dấu lựa chọn biến mất, điều đó là bình thường và nó có nghĩa là nó đã hoạt động.Để dán, sử dụng Ctrl-V (Command-V trên máy Mac).Ctrl-V (Command-V on a Mac).

Làm thế nào để tôi tìm thấy nội dung của một bảng tạm trong Python?

Bạn có thể sử dụng Pandas.Read_Clipboard () để đọc nội dung Clipboard dưới dạng DataFrame.Nó rất hữu ích khi được sử dụng với Ipython hoặc Jupyter Notebook.to_clipboard () cũng được cung cấp để sao chép nội dung của DataFrame vào bảng tạm.use pandas. read_clipboard() to read the clipboard contents as a DataFrame . It is very useful when used with IPython or Jupyter Notebook. to_clipboard() is also provided to copy the contents of a DataFrame to the clipboard.