吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5534|回复: 31
收起左侧

[Python 转载] 你的py小秘书--python自动操作鼠标

  [复制链接]
天域至尊 发表于 2020-3-24 10:19
昨天老大让我干个事。
各地上报上来了将近特别多份word文档,奈何这些word文档有的是doc的,有的是docx的。有的是用wps编辑的,有的是office。


因为原有的一个程序,是不识别wps编辑的文档的,只能识别word的。


老大缓缓的走过来:你,今天没事吧。
我:大……大哥,我没事。
老大:干个体力活?
我:都……都行。
老大:把文档全部用office另存为一遍,OK?
我:O……OK
老大:下班前要。
我:行……行吧。


随后,搜起了word的命令行操作,没搜到……
百般无奈下,只能召唤小秘了,python!


思路是,一次打开30份文档,由python去模拟人工操作,一个个另存为关闭。而我每次则是打开30份就好了。


为什么是30份?因为更多电脑就卡死机了,别问我怎么知道的。


另存为一份文档,基本需要6-7次单击,所以定了6次单击,让鼠标依次憨憨的点屏幕上几个位置。
付源码:
[Python] 纯文本查看 复制代码
import pyautogui,time
#pyautogui是孔控制鼠标的库
#pyautogui库功能非常丰富,可以单击,移动,拖动,右键等等

#初始化鼠标所需单击的位置,这次是模拟多地单击操作
mouseX=[]
mouseY=[]
#尝试读取鼠标位置保存文件,这个文件用于存储鼠标点击位置的数据,方便每次运行程序可以直接读取上次数据
#若文件不存在,则提示用户确定点击位置
try:
    #尝试打开,读取鼠标位置数据
    f=open('a.txt',mode='r')
    f=str(f.read()).split(',')
    for i in f:
        ff=i.split(':')
        mouseX.append(int(ff[0]))
        mouseY.append(int(ff[1]))
except Exception:
    pass
finally:
    try:
        f.close()
    except Exception:
        pass

#如果上述步骤没有读取成功,提醒用户把鼠标移动到想要程序自动点击的位置,回车。
#程序会自动记录位置,写入文件中,方便下次启动程序复用
#此次一共定位6个位置,依次单击,所以要用户定位6个位置
num=1
if len(mouseX)==0:
    #因需要定位6个位置,所以循环6次
    while num<=6:
        input('请将鼠标移至%s号位置,回车'%(num))
        #获取鼠标当前位置
        X, Y = pyautogui.position()
        #增加到列表中
        mouseX.append(X)
        mouseY.append(Y)
        print('位置定位成功')
        num=num+1
    #尝试存储数据
    try:
        f=open('a.txt',mode='w')
        masse=''
        for i in range(0,len(mouseX)):
            masse=masse+str(mouseX[i])+':'+str(mouseY[i])+','
        f.write(masse)
        print('数据保存成功')
    except Exception:
        print('数据保存失败,下次使用需要重新定位,本次无影响。')
    finally:
        try:
            f.close()
        except Exception:
            pass
#提示用户位置登记成功,等待五秒
print('定位鼠标位置为:%s,%s'%(str(mouseX),str(mouseY)))
time.sleep(5)
#进入30次循环,每次循环间隔2秒。自己设定的30个为一批次,可以按照自己的意愿设定
n=1
while n<=30:
    #打印提示信息
    print(str(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))+'开始'+str(n))
    #依次模拟点击,每次间隔两秒
    for i in range(0,len(mouseX)):
        #在指定位置模拟左键单击
        pyautogui.click(mouseX[i], mouseY[i], button='left')
        time.sleep(2)
    n=n+1



或许这不是什么高明的法子,但是很快。
期待评论区给出更高明的法子


原创,引用或转载请标明出处


免费评分

参与人数 3吾爱币 +5 热心值 +3 收起 理由
lzawww + 1 + 1 用心讨论,共获提升!
wkfy + 1 + 1 热心回复!
wushaominkk + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 天域至尊 发表于 2020-3-24 11:45
1830521742 发表于 2020-3-24 10:53
python 的OS 模块  和  Python-docx模块不香嘛?  效率比 pyautogui  高,还是后台运行的,不影响你操作鼠 ...

嘿嘿,就是docx模块不识别wps编辑的文档,我才这么痛苦,os库没找到调用word另存为的方法
落葉丶繁華殤 发表于 2020-3-24 10:23
这个方法不高明,但是解决问题了,高手,高手,高高手
家有葫芦仔 发表于 2020-3-24 10:35
nyzx0322 发表于 2020-3-24 10:47
会Py就是好
cosers 发表于 2020-3-24 10:49
这个小秘可以有阿,解决大问题了
谢谢分享
1830521742 发表于 2020-3-24 10:53
python 的OS 模块  和  Python-docx模块不香嘛?  效率比 pyautogui  高,还是后台运行的,不影响你操作鼠标键盘。
思念曹操 发表于 2020-3-24 10:54
能解决问题就可以,赞
Sen 发表于 2020-3-24 10:54
咳咳,小伙子, 下次还找你干苦力。
zcxter 发表于 2020-3-24 11:01
好像可以用万彩办公,全部批量转换成pdf,再批量转换成office,这样就可以了
羊肉串 发表于 2020-3-24 11:03
我都是用按键精灵的录制鼠标键盘功能,循环30次自动停止,一样可以实现。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 07:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表