首页 python正文

python定时启动、判定程序是否运行及启动程序实现代码

启明SEO python 2020-12-21 17:13:56 2163 0 定时启动

最近一直在研究一个脚步,始终没办法完美运行,总会跑着跑着就会出错。最开始一直想着要完善完善,但是说实在的这个东西不是说你每天抱着电脑看,就能真的将其完善到完美(可能是我比较笨吧,又或许是我懒的借口)。时间过得很快,我又想项目早点进入实验阶段,想来想去找到了下面的补救办法。


在我一直研究的那个脚步里一共有两个问题,一个问题是每天晚上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,结果没反应,还以为是程序错误。

python定时启动、判定程序是否运行及启动程序实现代码


第二个问题就是脚步在跑的时候,总会在第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')是启动程序。这样看是不是很简单。

有了这两段代码,目前来说在脚步并不完美的情况下,也可以提前运行了。


评论

Python好学公众号

好文推荐

实时访客入口页面出现bd_vid=标识是什么原因

实时访客入口页面出现bd_vid=标识是什么原因

最近查看百度实时访客,总是会看到入口页面会多......

有了微信视频号,但是没有发布权限,怎么开通

有了微信视频号,但是没有发布权限,怎么开通

视频号是微信在2020年1月19号开始内测的......

如何用python抓取爱企查企业信息

如何用python抓取爱企查企业信息

前段时间,经理让我去找一些企业的信息,我平常......

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

对于一般企业网站或者博客来说,对服务器的配置......

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

修改浏览指纹的方法其实也是很简单,主要使用到......

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

我遇到的问题是电脑原先安装过mysql,卸......