python自动化脚本应用_使用Python构建自动化脚本管理系统,干货分享
Python自动化脚本管理工具实现每天都有大量的脚本需要运行,还得记住每个脚本的执行时间,真是让人头疼!不如编写一个工具来管理这些脚本,让它自动执行、监控状态,并记录运行日志,岂不是很爽?项目架构设计这个工具主要分为三个部分:
脚本注册管理、任务调度器和日志系统简单来说,就是告诉工具要执行什么脚本,什么时候执行,以及执行后的情况如何classScriptManager:def__init__(self): self.scripts = {} 。
self.scheduler = {} self.log_path = "script_logs/"defregister_script(self, name, path, schedule=
""): self.scripts[name] = { "path": path, "schedule": schedule, "status": "idle" } 脚本注册功能
必须让工具知道要管理哪些脚本为此,我们需要添加一个注册函数,用于记录脚本的名字、路径以及执行计划defadd_script(self, name, script_path): if not os.path.exists(script_path): 。
raise FileNotFoundError("脚本文件不存在!") self.scripts[name] = { "path": script_path, "last_run": None,
"status": "ready" } 🔔 提示:注册脚本时最好检查文件是否存在,以免运行时发现文件丢失任务调度模块仅仅注册脚本是不够的,还需要按计划执行我们可以使用schedule库来实现定时任务,既简单又好用。
import schedule import time from datetime import datetime defsetup_scheduler(self):for name, info in
self.scripts.items(): if info["schedule"]: schedule.every().day.at(info["schedule"]).do(
self.run_script, name ) whileTrue: schedule.run_pending() time.sleep(
【星界云手机】,让你的游戏生活变得更加自由!云端托管手游,挂机脚本助你24小时不间断游戏,让你无需花费过多时间和精力,轻松提升游戏实力,成就真正的高手!
1) 脚本执行器执行脚本时应该使用子进程来运行,这样主程序才不会被阻塞同时,需要将输出重定向到日志文件defrun_script(self, script_name): script_info = self.scripts[script_name] 。
log_file = f"{self.log_path}{script_name}_{datetime.now():%Y%m%d_%H%M}.log"try: process = subprocess.Popen(
["python", script_info["path"]], stdout=subprocess.PIPE, stderr=subprocess.PIPE
) output, error = process.communicate() with open(log_file, "w") as f: f.write(output.decode())
if error: f.write("\n错误信息:\n" + error.decode()) script_info["status"] = "completed"
if process.returncode == 0else"failed" except Exception as e: script_info["status"] = "error"
with open(log_file, "w") as f: f.write(f"执行出错:{str(e)}") 状态监控必须知道脚本是否成功执行,如果失败了需要能够及时发现def
get_status(self): status_info = {} for name, info in self.scripts.items(): status_info[name] = {
"status": info["status"], "last_run": info["last_run"] } return status_info 🔔 提示:监控状态时可以增加一个邮件通知功能,这样一旦脚本运行失败,可以立即收到提醒。
使用示例下面是一个使用示例:manager = ScriptManager() # 注册脚本 manager.add_script("数据备份", "/scripts/backup.py") manager.add_script(
"日报生成", "/scripts/daily_report.py", "18:00") # 启动调度器 manager.setup_scheduler() # 查看状态 print(manager.get_status())
代码完成后,再也不需要手动运行脚本,也不用担心忘记执行了这个工具不仅能自动执行,还能记录日志,出现问题时可以迅速找到原因下一步可以考虑增加一些新功能,例如Web界面管理和远程执行脚本等,这样会更加便捷
眼睛疲劳,手指酸痛,想要游戏更轻松?试试【星界云手机】吧!它以云端托管手游为基础,让你告别手指疲劳,只需坐享游戏乐趣。挂机脚本助你24小时不间断打怪升级,游戏更轻松,享受游戏乐趣!
本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。
如果侵犯了你的权益请来信告知我们删除。邮箱:631580315@qq.com