最近一直在研究一个脚步,始终没办法完美运行,总会跑着跑着就会出错。最开始一直想着要完善完善,但是说实在的这个东西不是说你每天抱着电脑看,就能真的将其完善到完美(可能是我比较笨吧,又或许是我懒的借口)。时间过得很快,我又想项目早点进入实验阶段,想来想去找到了下面的补救办法。
在我一直研究的那个脚步里一共有两个问题,一个问题是每天晚上12点以后需要提取资料,手动提取,这个很烦,虽然研究出了新解决办法,但是又抛出了新的问题,总之就是不能完美解决。虽然如此,但是好在可以用程序做一次提取。这样我就开始寻找定时功能了,这个百度一下就很容易找到了,下面代码就可以轻松做到。
from apscheduler.schedulers.blocking import BlockingScheduler from datetime import datetime # 输出时间 def job(): print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) # BlockingScheduler scheduler = BlockingScheduler() scheduler.add_job(job, 'cron', day_of_week='0-4', hour=16,minute=42) scheduler.start()
这里需要注意是day_of_week='0-4'这个代表的是周一到周五,这个跟列表索引都是从0开始有关系,刚开始我写的是1-5,结果没反应,还以为是程序错误。
第二个问题就是脚步在跑的时候,总会在第N次的时候抛错。这个问题,我的思考方向就是判定脚步是否在运行,并且判断没有运行的时候,自动启动。要达到这样的效果,在python中也是比较简单,下面代码就可以解决了。
import os import win32com.client def proc_exist(process_name): is_exist = False wmi = win32com.client.GetObject('winmgmts:') processCodeCov = wmi.ExecQuery('select * from Win32_Process where name=\"%s\"' %(process_name)) if len(processCodeCov) > 0: is_exist = True return is_exist if proc_exist('kuaipai.exe'): print('chrome.exe is running') else: print('no such process...现在来启动') os.system(r'G:\1029\kuaipai.exe')
前9行代码,我们可以直接引用,都不用去搞懂其原理,后面的代码我们只需要修改以下几个参数就好了:
kuaipai.exe,这个是你需要判断的程序
r'G:\1029\kuaipai.exe'这个是这个程序的目录,os.system(r'G:\1029\kuaipai.exe')是启动程序。这样看是不是很简单。
有了这两段代码,目前来说在脚步并不完美的情况下,也可以提前运行了。
评论