0

我目前正在编写这本书自动化无聊的东西第 9 章扩展多剪贴板的实践项目。

代码:

#! python3
# mcb.pyw - Saves and loads peices of text to the clipboard
# Usage: py.exe mcb.pyw save <keywoard> - Saves clipboard to key keywoard
#       py.exe mcb.pyw <keywoard> - Loads keywoards to clipboard
#       py.exe mcb.pyw list - Loads all keywoards to clipboard

import shelve
import pyperclip
import sys

mcbShelf = shelve.open('mcb')
helpList = []
# Save clipboard content
if len(sys.argv) == 3:
    if sys.argv[1].lower == 'save':
        mcbShelf[sys.argv[2]] = pyperclip.paste()
    elif sys.argv[1].lower == 'delete':
        if sys.argv[2] == 'all':
            for key, balue in mcbShelf.items():
                helpList.append(key)

            for i in range(len(helpList)):
                del mcbShelf[helpList[i]]

        if sys.argv[2] in mcbShelf:
            del mcbShelf[sys.argv[2]]

    elif sys.argv[1].lower == 'add':
        mcbShelf[sys.argv[2]] = pyperclip.paste()


elif len(sys.argv) == 2:
    # List keywoards 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()

当我从命令提示符启动程序时,例如使用“py mcb.py list”绝对没有任何反应,我只是转到命令提示符的下一行而没有错误消息。

我只有在我的 pyperclip 和 sys.argv 程序中有这个问题。如果我只使用 pyperclip,它似乎可以正常工作,有什么想法可以解决这个问题吗?

4

1 回答 1

0

对于初学者,如果您正在使用 Automate the Boring Stuff,文件扩展名应该是 .pyw,它不会在命令行上显示输出。

要手动测试脚本是否正常工作,请在命令行中运行脚本之前复制一些文本。当您运行以下命令时,当前复制到剪贴板的文本将被保存到架子上,并与“关键字”名称相关联,类似于字典键:值关系

python3 mcb.pyw save <keyword>

您可以通过运行此命令并将文本保存到唯一命名的关键字来保存任意数量的关键字:文本对。

仅使用关键字参数 ( ) 运行脚本python3 mcb.pyw <keyword>会将与关键字关联的文本复制到剪贴板上。要查看该关键字的文本,请将其粘贴到打开的文本编辑器中。

要查看关键字列表,只需运行:

python3 mcb.pyw list

通过运行此程序,您已使用 pyperclip 将架子键列表复制到剪贴板,因此现在您可以粘贴到打开的文本编辑器中以查看保存的关键字列表,因为命令行上不会有输出

例如:

  1. 将电子邮件密码复制到剪贴板

  2. python3 mcb.pyw save password

  3. 复制新闻文章中的引用

  4. python3 mcb.pyw save quote

  5. python3 mcb.pyw password

  6. 粘贴到文本编辑器以查看电子邮件密码

  7. python3 mcb.pyw list

  8. 粘贴到文本编辑器中查看 ['password', 'quote']

于 2020-10-21T03:04:03.587 回答