Python写一个每20分钟对一个路径文件夹中当月建立的txt文件复制到另一个路径中,并且这段程序每天的24点停止运行,20秒后继续运行
时间: 2024-05-14 15:12:41 浏览: 115
以下是一个示例代码,可以实现每20分钟复制当月建立的txt文件到另一个路径,并在每天24点停止运行,20秒后继续运行:
```python
import os
import shutil
import time
from datetime import datetime, timedelta
# 设置路径
source_path = '/path/to/source/folder/'
dest_path = '/path/to/destination/folder/'
# 获取当前日期
now = datetime.now()
# 获取下一个20分钟的时间
next_copy_time = now + timedelta(minutes=20 - now.minute % 20,
seconds=-now.second,
microseconds=-now.microsecond)
# 循环运行程序
while True:
# 获取当前时间
now = datetime.now()
# 判断是否到达下一个复制时间
if now >= next_copy_time:
# 获取当月所有txt文件
txt_files = [f for f in os.listdir(source_path) if f.endswith('.txt') and
datetime.fromtimestamp(os.path.getctime(source_path + f)).month == now.month]
# 复制文件到目标路径
for f in txt_files:
shutil.copy2(source_path + f, dest_path)
# 更新下一个复制时间
next_copy_time = now + timedelta(minutes=20 - now.minute % 20,
seconds=-now.second,
microseconds=-now.microsecond)
# 判断是否到达24点
if now.hour == 0 and now.minute == 0 and now.second == 0:
# 停止程序
break
# 等待20秒后继续运行
time.sleep(20)
```
需要注意的是,这段程序需要在每天的0点前启动,否则下一个复制时间会计算错误。如果需要每次启动程序时都从当前时间开始计算下一个复制时间,可以将 `next_copy_time` 的初始化放到循环外面。此外,如果有多个程序同时运行,可能会出现文件复制冲突的问题,需要进行相应的处理。
阅读全文