python写一个代码模块运行的记录,并且运行后当天不再运行
时间: 2024-09-12 10:08:55 浏览: 31
在Python中,你可以使用`logging`库来记录代码模块的运行信息,并结合时间戳和条件判断来确保同一天只运行一次。首先,确保已经安装了`logging`库,如果没有可以使用`pip install logging`命令安装。
下面是一个简单的例子,它创建了一个名为`module_logger.py`的文件:
```python
import datetime
import logging
# 初始化日志记录器
def init_logger(name):
log_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(name)
logger.setLevel(logging.INFO)
# 创建一个FileHandler,用于写入日志文件
file_handler = logging.FileHandler(f'{name}_{datetime.date.today()}.log', mode='a') # 'a'代表追加模式
file_handler.setFormatter(log_formatter)
# 给logger添加handler
logger.addHandler(file_handler)
return logger
def run_module_once_per_day(logger):
today = datetime.datetime.now().date()
if not (today == yesterday): # 假设yesterday是一个全局变量存储昨天的日期
# 运行你的代码块...
logger.info("Running module for the first time today.")
your_code_block()
yesterday = today # 更新昨天的日期
else:
logger.info("Module already ran today, skipping.")
if __name__ == "__main__":
# 初始化日志记录器
logger = init_logger('your_module')
# 检查并运行模块
run_module_once_per_day(logger)
```
在这个示例中,我们创建了一个`run_module_once_per_day`函数,它会在每次调用前检查当前日期是否与前一天相同。如果不同,就运行代码块并记录日志;如果相同,则跳过。`init_logger`函数负责设置日志的配置和保存文件。
记住在`your_code_block`中替换你实际需要运行的代码。
阅读全文