• Python实践练习:多重剪贴板


    题目

    假定你有一个无聊的任务,要填充一个网页或软件中的许多表格,其中包含一些文本字段。剪贴板让你不必一次又一次输入同样的文本,但剪贴板上一次只有一个内容。如果你有几段不同的文本需要拷贝粘贴,就不得不一次又一次的标记和拷贝几个同样的内容。
    可以编写一个 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()
    
  • 相关阅读:
    《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)--宋宝华
    WebApp 安全风险与防护课堂开课了!
    2019 Vue开发指南:你都需要学点啥?
    每个程序员都该学习的5种开发语言
    每个Web开发者都该了解的12条命令行
    Webpack 4教程
    都 9012了,该选择 Angular、React,还是Vue?
    在 Angular 8 中,我们可以期待些什么
    “宇宙最强” IDE,Visual Studio 2019 正式发布
    Webpack 4教程
  • 原文地址:https://www.cnblogs.com/wudongwei/p/9013486.html
Copyright © 2020-2023  润新知