1. 程式人生 > >Python實踐練習:多重剪貼板

Python實踐練習:多重剪貼板

paste 文件中 pen spa code shelf 讀寫 加載 檢查

題目

假定你有一個無聊的任務,要填充一個網頁或軟件中的許多表格,其中包含一些文本字段。剪貼板讓你不必一次又一次輸入同樣的文本,但剪貼板上一次只有一個內容。如果你有幾段不同的文本需要拷貝粘貼,就不得不一次又一次的標記和拷貝幾個同樣的內容。
可以編寫一個 Python 程序,追蹤幾段文本。這個“多重剪貼板”將被命名為
mcb.pyw(因為“mcb”比輸入“multiclipboard”更簡單)。.pyw 擴展名意味著 Python運行該程序時,不會顯示終端窗口。
該程序將利用一個關鍵字保存每段剪貼板文本。例如,當運行 py mcb.pyw save spam,剪貼板中當前的內容就用關鍵字 spam 保存。通過運行 py mcb.pyw spam,這段文本稍後將重新加載到剪貼板中。如果用戶忘記了都有哪些關鍵字,他們可以運行 py mcb.pyw list,將所有關鍵字的列表復制到剪貼板中。

下面是程序要做的事:
? 針對要檢查的關鍵字,提供命令行參數。
? 如果參數是 save,那麽將剪貼板的內容保存到關鍵字。
? 如果參數是 list,就將所有的關鍵字拷貝到剪貼板。
? 否則,就將關鍵詞對應的文本拷貝到剪貼板。
這意味著代碼需要做下列事情:
? 從 sys.argv 讀取命令行參數。
? 讀寫剪貼板。
? 保存並加載 shelf 文件。

代碼

#! python3
# mcb.pyw - Saves and loads pieces of text to the clipboard.
# Usage: py.exe mcb.pyw save <keyword> - Saves clipboard to keyword.
# py.exe mcb.pyw <keyword> - Loads keyword to clipboard.
# py.exe mcb.pyw list - Loads all keywords to clipboard.


# shelve是用來保存shelf文件中
import shelve, pyperclip, sys

mcbShelf = shelve.open('mcb')

# 保存剪切板內容
if len(sys.argv) == 3 and sys.argv[1].lower() == 'save':
    mcbShelf[sys.argv[2]] = pyperclip.paste()
elif len(sys.argv) == 2:
    # List keywords and load content.
    if sys.argv[1].lower() == 'list':
        pyperclip.copy(str(list(mcbShelf.keys())))
    elif sys.argv[1] in mcbShelf:
        pyperclip.copy(mcbShelf[sys.argv[1]])

mcbShelf.close()

Python實踐練習:多重剪貼板