標籤:不同的 不同 ext port 練習 word 忘記 多表 檔案中
題目
假定你有一個無聊的任務,要填充一個網頁或軟體中的許多表格,其中包含一些文字欄位。剪貼簿讓你不必一次又一次輸入同樣的文本,但剪貼簿上一次只有一個內容。如果你有幾段不同的文本需要拷貝粘貼,就不得不一次又一次的標記和拷貝幾個同樣的內容。
可以編寫一個 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, sysmcbShelf = 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實踐練習:多重剪貼簿