当前位置: 首页 > news >正文

Python 脚本在工作日(周一到周五)的 8:00 到 19:00 之间持续运行,并在其他时间暂停(延时)


Python 脚本在工作日(周一到周五)的 8:00 到 19:00 之间持续运行,并在其他时间暂停(延时)

  • 💎 脚本实现:
  • 📌 功能说明:
  • ✅ 优点:
  • ⚠️ 注意事项:
  • 🔁 更精细的睡眠策略(可选优化)


要让一个 Python 脚本在工作日(周一到周五)的 8:00 到 19:00 之间持续运行,并在其他时间暂停(延时),你可以使用 timedatetime 模块来判断当前时间是否在目标时间段内。如果不在,可以让脚本休眠一段时间,直到下一个检查点。


💎 脚本实现:

下面是一个完整的示例脚本,展示了如何实现这个功能:

import time
from datetime import datetime, timedeltadef is_weekday():"""判断今天是否是工作日(周一到周五)"""weekday = datetime.now().weekday()  # 0=Monday, 6=Sundayreturn weekday < 5  # 周一到周五def is_within_time_range(start_hour=8, end_hour=19):"""判断当前时间是否在指定的时间范围内"""now = datetime.now().time()start_time = datetime.strptime(f"{start_hour}:00", "%H:%M").time()end_time = datetime.strptime(f"{end_hour}:00", "%H:%M").time()return start_time <= now < end_timedef your_main_task():"""你的主任务逻辑,比如打印一条消息或执行某些操作"""print(f"[{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] 正在执行主任务...")# 这里放你实际要执行的代码time.sleep(5)  # 模拟任务耗时def main():print("定时任务启动中...")while True:current_time = datetime.now()print(f"当前时间: {current_time.strftime('%Y-%m-%d %H:%M:%S')}")if is_weekday() and is_within_time_range(8, 19):print("正在工作时间段内,执行任务...")your_main_task()else:# 计算距离下一个检查点的时间tomorrow = current_time + timedelta(days=1)next_check = datetime.combine(tomorrow.date(), datetime.min.time())sleep_seconds = (next_check - current_time).total_seconds()print(f"非工作时间段,休眠 {sleep_seconds:.0f} 秒直到明天重新检查。")time.sleep(sleep_seconds)if __name__ == "__main__":main()

📌 功能说明:

  • is_weekday():判断今天是否是周一到周五。
  • is_within_time_range():判断当前时间是否在 8:00 到 19:00 之间。
  • your_main_task():这是你要执行的主要逻辑,可以替换为你的实际代码。
  • 主循环会不断检查时间,符合条件就执行任务,否则进入休眠。

✅ 优点:

  • 简单可靠,不依赖外部工具。
  • 避免频繁轮询,节省资源。

⚠️ 注意事项:

  1. 精度:该脚本每天只在非工作时间休眠到次日零点再检查,如果你希望更精确(比如周末结束后自动恢复),可以改为每分钟检查一次,或者计算下一次“8:00”的时间作为唤醒点。
  2. 长期运行:建议将此脚本用 nohupsystemdscreen 等方式后台运行,防止终端关闭中断。
  3. 跨平台兼容:此代码在 Windows/Linux/macOS 上均可运行。

🔁 更精细的睡眠策略(可选优化)

如果你想在每天 19:00 后只睡到第二天 8:00,而不是等到凌晨,可以这样改进:

else:# 计算明天早上8点的时间tomorrow = current_time + timedelta(days=1)next_start = datetime.combine(tomorrow.date(), datetime.strptime("08:00", "%H:%M").time())sleep_seconds = (next_start - current_time).total_seconds()print(f"非工作时间段,休眠 {sleep_seconds:.0f} 秒直到明天 8:00。")time.sleep(sleep_seconds)

这样更高效,避免了不必要的多次检查。


如果你希望使用系统级定时任务(如 Linux 的 crontab),也可以设置 cron 每天 8:00 启动脚本,但需要配合额外逻辑控制结束时间。而上面的 Python 方案是纯代码控制、自包含的推荐做法。


http://www.dtcms.com/a/521030.html

相关文章:

  • 婚庆网站大全深圳企业网站制作公司查询
  • 当城市有了“空间智能体”:一座长江首城的智慧蝶变
  • 机械类做的最好的网站网站开发代理江苏
  • 让别人做网站图片侵权网站简易后台
  • seo针对网站做策划大型网站开发合同
  • Macao资料生成程序,全新的UI 三端自适应PHP空间
  • 1Panel 安装与使用全指南:从部署到实战运维
  • Katalon Studio自愈测试功能
  • 非java、python、c/c++、perl、php、sql等的文章
  • 企业网站的建设与应用开题报告自己搭建app
  • 实验三:3-8线译码器设计
  • 深入浅出:马尔科夫链完全指南
  • 国外域名抢注网站seo顾问什么职位
  • 怎么做网站dns加速销售订单管理系统软件
  • DevOps工具链选型,Atlassian or TikLab哪一款更好用?
  • 网站实现搜索功能网站开发 平面设计
  • 河北建设厅官网站首页手机兼职有哪些
  • 【经典书籍】C++ Primer 第16章模板与泛型编程精华讲解
  • 做体育的网站网络推广优化是干啥的
  • 自己人网站建设网站推广策划方案大数据精准获客
  • Linux yum安装(安装docker)
  • AI未来--AI在制造业的最佳落地实践
  • 安徽省建设信息网站企业网站管理系统使用教程
  • 家具行业网站建设外链建设都需要带网站网址
  • UVC真空共晶炉哪个公司好
  • [nanoGPT] GPT模型架构 | `LayerNorm` | `CausalSelfAttention` |`MLP` | `Block`
  • 教育网校Web端源码开发难点剖析:互动课堂、白板与大小班课功能实现
  • 门户网站优点想学会网站建设要会什么
  • 中职学校网站建设情况总结大型网站建设公司排名
  • ply(python版本的flex/bison or Lex/Yacc)