1678613071 发表于 2021-3-17 09:03

每次使用ctrl+v粘贴后剪贴板中的数字自动加1

昨晚改cad图名编号,几百个图的角标一个个改得烦死,每次都要输入数字,遂想要一个程序,搜索无果后自己动手,菜鸡水平请大家指点
import pyperclip
import keyboard
import time

def keyboard_():
    t = 0
    if keyboard.is_pressed('v'):
      t = 1
    else:
      pass
    return t
def _paste_run_2(a):
    t = 0
    a1 = int(a)
    while True:
      t = keyboard_()
      if t == 1:
            print(a1)
            pyperclip.copy(a1)
            a1 = int(pyperclip.paste())
            a1 += 1
            time.sleep(1.5)
      else:
            continue
      t = 0
def _set_paste():
    _set_paste_ = input('输入起始值:')
    pyperclip.copy(int(_set_paste_))
    a = pyperclip.paste()
    return a
if __name__ == '__main__':
    a = _set_paste()
    _paste_run_2(a)
在pycharm中运行后输入开始的数字,之后每次按下ctrl v粘贴后剪贴板的数字会自动加1
目前已知bug 有时候数字会多加或者没加 原因应该是按下时间太长导致循环次数增加,我加了休眠1.5s然后就有的时候会没能成功加1
希望有个大佬指点一下/

1678613071 发表于 2021-3-17 17:30

wh201906 发表于 2021-3-17 10:14
你现在的实现方式是轮询,keyboard库有监听按键的功能的,监听Ctrl+V的按下/弹起应该就可以了
批量重命名 ...

嗯嗯 谢谢老哥
def _paste_run_3(a):
    a1 = int(a)
    while True:
      a1 = int(a1)
      keyboard.wait(hotkey='ctrl+v')
      a1 += 1
      pyperclip.copy(a1)
      # print(a1)
      a1 = pyperclip.paste()
      print(a1)
我也写了个监听按下的 但是还是会有同样的问题 相比起来那个版本更稳定一些
然后的话就是我们是用来在cad里的图片一个个修改图的编号所以就用不了那种批量修改文件名的工具 在网上搜索一圈后发现没找到这样功能的 想着原理挺简单的就自己动手搞了 虽然搞得还是很拉胯就是了

1678613071 发表于 2021-3-17 17:33

bester 发表于 2021-3-17 09:44
你设置成按键弹起就解决了这个问题

嗯嗯 就是也去看了keybord库的文档 但是就是全英文的阅读有点慢 而且水平过差有的看不太懂加上忙着工作啥的就将就用这个了没再继续完善

jimoguying2020 发表于 2021-3-17 09:07

你大概需要一个按键精灵:lol

宇宸Eason 发表于 2021-3-17 09:09

我用过那个quicker,感觉可以使用他的指令拆开看一下,它可以无限剪切板还是比较厉害的。

annron1986 发表于 2021-3-17 09:22

请问大佬,是绘图那个CAD软件用的吗?

david9965 发表于 2021-3-17 09:29

判断一下字符串是不是一样的

bester 发表于 2021-3-17 09:44

你设置成按键弹起就解决了这个问题

wh201906 发表于 2021-3-17 10:14

你现在的实现方式是轮询,keyboard库有监听按键的功能的,监听Ctrl+V的按下/弹起应该就可以了
批量重命名应该有很多现成工具的,这种工具可能会好用一些

1678613071 发表于 2021-3-17 17:31

jimoguying2020 发表于 2021-3-17 09:07
你大概需要一个按键精灵

按键精灵里有这样的功能吗/?之前用好像没注意过能修改剪贴板内容的诶
页: [1] 2
查看完整版本: 每次使用ctrl+v粘贴后剪贴板中的数字自动加1