好友
阅读权限20
听众
最后登录1970-1-1
|
天域至尊
发表于 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
或许这不是什么高明的法子,但是很快。
期待评论区给出更高明的法子
原创,引用或转载请标明出处
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|