python定时程序(每隔一段时间执行指定函数)

本文介绍了一个简单的Python定时任务执行器,通过定义间隔时间和执行命令,该执行器可以在指定的时间间隔内重复执行特定的任务。
import time,os
def print_ts(message):  
    print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), message)  
def run(interval, command):  
    print_ts("-"*100)  
    print_ts("Command %s"%command)  
    print_ts("Starting every %s seconds."%interval)  
    print_ts("-"*100)  
    while True:  
        try:  
            # sleep for the remaining seconds of interval  
            time_remaining = interval-time.time()%interval  
            print_ts("Sleeping until %s (%s seconds)..."%((time.ctime(time.time()+time_remaining)), time_remaining))  
            time.sleep(time_remaining)  
            print_ts("Starting command.")  
            # execute the command  
            status = os.system(command)  
            print_ts("-"*100)  
            print_ts("Command status = %s."%status)  
        except (Exception, e):  
            print (e)  
if __name__=="__main__":  
    interval = 5  
    command = r"ls"  
    run(interval, command)  
<think>我们需要一个无限循环,每次循环执行一些操作,然后等待1秒。可以使用time模块的sleep函数来实现等待。 注意:为了避免长时间运行的程序占用过多CPU,我们在每次循环后使用time.sleep(1)来暂停1秒。 另外,为了确保程序能够被中断,我们可以捕获KeyboardInterrupt异常,这样用户可以通过Ctrl+C来停止程序。</think>以下是一个使用Python实现每秒执行一次的无限循环程序: ```python import time def main(): counter = 0 try: while True: # 这里放置您需要每秒执行的代码 counter += 1 current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print(f"执行次数: {counter}, 当前时间: {current_time}") # 等待1秒(精确到毫秒级) time.sleep(1.0) except KeyboardInterrupt: print("\n程序已手动停止") if __name__ == "__main__": main() ``` ### 程序说明: 1. **核心机制**: - 使用 `while True:` 创建无限循环 - 通过 `time.sleep(1.0)` 实现精确的1秒间隔 - 使用 `KeyboardInterrupt` 异常处理允许通过 Ctrl+C 安全退出 2. **功能扩展建议**: - 添加日志记录功能(使用logging模块) - 增加异常处理确保单次执行失败不影响整体循环 - 添加定时任务调度(如使用schedule库) 3. **使用示例**: ```python # 替换print语句为您的实际任务代码 def your_task(): # 这里放置您需要每秒执行的实际任务 print("执行自定义任务...") # 在循环中调用 while True: your_task() time.sleep(1.0) ```
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值