监控文件

       当python文件发生变更时,每次手动杀掉进程然后重启这种操作台繁琐了。利用watchdog可以监控目录文件的变化,无需手动定时扫描,可以利用操作系统的API来监控目录文件的变化并发送通知。 首先安装watchdog

pip3 install watchdog

示例代码

from watchdog.observers import Observer
from watchdog.events import *
import time
import argparse
import subprocess

class MyFileSystemEventHander(FileSystemEventHandler):
    def __init__(self , fn):
        super(FileSystemEventHandler , self).__init__()
        self.restart = fn

    def on_any_event(self , event):
        if event.src_path.endswith('.py'):
            self.restart()

def kill_process():
    global process
    if process:
        print('kill process: ' , process)
        process.kill()
        process.wait()
        process = None

def start_process():
    global command , process
    process = subprocess.Popen(["python3" , command])
    print('start process: ' , process)

def restart_process():
    kill_process()
    start_process()

if __name__ == "__main__":

    parser = argparse.ArgumentParser()
    parser.add_argument('-p' , '--python' , help ='可执行python文件')
    args = vars(parser.parse_args())
    
    # 监控的可执行文件
    command = os.path.join(args['python'] , "test.py")

    observer = Observer()
    observer.schedule(MyFileSystemEventHander(restart_process) , args["python"] , recursive = True)
    observer.start()
    start_process()
    try:
        while True:
            time.sleep(0.5)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值