HOWTO · Python

在 Python 中將文字複製到剪貼簿

了解如何使用套件、tkinter 或 pandas 將 Python 文字複製到系統剪貼簿。

本頁內容

Python 剪貼簿工具將文字傳送到作業系統剪貼簿,以便將其貼到另一個應用程式中。對於純文字,pyperclip 提供了簡潔的複製 API 和可選的貼上 API。其他選擇包括用於位元組導向工作流程的 pyperclip3、作為替代方案的 clipboard 和 xerox、用於 GUI 程式的 tkinter,以及用於表格的 pandas。剪貼簿存取取決於作業系統以及程式執行的會話。

使用 pyperclip 複製文字

使用 python -m pip install pyperclip 安裝該套件。下面的簡短程式使用 Python 標準函式庫執行,並顯示在套件和系統剪貼簿可用的環境中可以傳遞給 pyperclip.copy() 的文字值。

text_to_copy = "Hello, Clipboard!"
print(text_to_copy)
Hello, Clipboard!

要將該值傳送到剪貼簿,請使用 import pyperclip,然後呼叫 pyperclip.copy(text_to_copy)。當你還需要讀取目前剪貼簿文字時,請使用 pyperclip.paste()。這些套件呼叫需要目前會話中有可用的剪貼簿機制;某些 Linux 設定還需要桌面會話和剪貼簿公用程式。

需要位元組時使用 pyperclip3

當你的程式碼需要來自剪貼簿的位元組資料時,使用 python -m pip install pyperclip3 安裝。它的 copy() 和 paste() 操作處理位元組。請明確轉換值:在複製數字之前使用 str(number).encode("utf-8"),然後解碼傳回的位元組,並在需要時對其進行解析。剪貼簿儲存的是文字或位元組,而不是原始的 Python 物件類型。

使用 clipboard 套件複製文字

使用 python -m pip install clipboard 安裝 clipboard 套件。該套件提供 copy() 和 paste();例如,在 import clipboard as c 之後,呼叫 c.copy("Python Clipboard") 和 c.paste()。在兩個呼叫中保持別名一致。這是一個文字導向的替代方案,仍然依賴主機環境對剪貼簿的支援。

使用 xerox 作為另一個剪貼簿套件

使用 python -m pip install xerox 安裝,然後對文字使用 import xerox、xerox.copy("Python Xerox Example") 和 xerox.paste()。平台支援和任何系統相依性都可能隨所安裝的套件版本和作業系統而有所不同,因此如果無法存取剪貼簿,請查閱其安裝指南。

將 tkinter 用於 GUI 應用程式

當程式已經有 GUI 時,tkinter 可以使用視窗系統的剪貼簿方法。如果缺少 tkinter,請參閱如何在 Python 中安裝 tkinter。需要圖形顯示器。建立一個根視窗,然後呼叫 root.clipboard_clear()、root.clipboard_append(text_to_copy) 和 root.update() 來傳送文字。update() 處理 Tk 事件;剪貼簿的擁有權以及程式結束後是否保留取決於視窗系統。GUI 程式可以在使用者工作時保持其事件迴圈處於作用中狀態。

使用 pandas 複製 DataFrame

對於表格資料,請安裝 pandas 並使用 DataFrame.to_clipboard(),例如 df.to_clipboard(index=False, header=False)。這會格式化表格,以便將其貼到試算表或其他表格應用程式中;它不是複製任意 Python 物件的通用方法。這兩個參數會省略列標籤和欄名。刪除任一參數即可包含該部分。此呼叫同樣需要目前環境支援的剪貼簿機制。