效率神器:用剪贴板工具copyq打造强大的python脚本箱 # copyq中使用python命令示例(examples of copyq calling python scripts) copyq是强大的剪贴板工具,windows/mac/linux均有客户端。 https://hluk.github.io/CopyQ/  它不只是剪贴板工具,因为可以执行各类脚本,完全可以将它作为脚本箱使用,大大方便各类工作。 官方文档讲的语焉不详,多次尝试后,本文将讲明如何正确调用Python命令完成各种骚操作。 下面,在实践中学习。 ## 生成一个随机字符串并插入到剪贴板 本示例讲述如何调用一个python文件 假设rnd.py可以输出一个随机字符串,比如这样 ``` import string import random length_of_string = 32 print(''.join(random.choice(string.ascii_letters + string.digits) for _ in range(length_of_string)), end='') ``` 在copyq中,按f6,打开命令面板,新建一个`随机数`命令,然后选一个有意思的图标  点开右下的`显示高级`,然后在`命令`中输入下面的命令,便可调用Python脚本,使用`|`,可以将输出传递到下一条命令,让copyq调用`input`获取输入流,`add`,添加新的条目 ``` python "D:\\workspace\\personal\\py_test\\tools\\rnd.py"|copyq add(input()) ``` ### 效果 此时,呼出copyq主界面,点按预设的图标,就能看到一个随机字符串被插入到最上层  ## 将timestamp转换为时间,并添加为该条目的tag 本示例讲述如何取到`当前的选项`,并动态传给Python脚本。 类似上个例子,在command界面,添加命令如下,不过这次选择直接调用脚本,而不是调用文件。 copyq print会将`%1`也就是当前选择项传递给python脚本。  ``` copyq print %1|python -c ' import sys import time try: origin = sys.stdin.read() if len(origin) == 13: origin = origin[:10] time_array = time.localtime(int(origin)) style_time = time.strftime(str("%Y-%m-%d %H:%M:%S"), time_array) if style_time: print(style_time) else: print("empty") except: print("error")'|copyq: var time = dateString('yyyy-MM-dd hh:mm:ss') var tagsMime = 'application/x-copyq-tags' var tags = str(data(tagsMime)) + ', ' + input() setData(tagsMime, tags) ``` 注意,可以使用`copyq:`的简写方法,写大量的代码。然后使用`|`将上一步的输出导入。 ### 效果 点选时间戳命令后,这条记录被添加了转换后的时间字符串tag,如果是非法的时间戳,则会添加error tag  ## 其它脚本 ### 插入当前时间 command: ``` copyq: var time = dateString('yyyy-MM-dd hh:mm:ss') add(time) ``` ### trim字符串 command: ``` copyq print %1|python -c ' import sys print(sys.stdin.read().strip(),end="")'|copyq: add(input()) ``` 来自 大脸猪 写于 2022-08-30 23:45 -- 更新于2022-08-31 13:30 -- 2 条评论