本文主要是介绍python笔记-检测时间数据递增正确性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概述
本文主要描述了使用一个python脚本检查输入的时间数据,是否按正常递增的格式增加。
背景
在平常写时间校准算法的过程中,输出的数据不好检查是否每个时刻数据都是正确的,所以需要写一个脚本来检查,时间校准算法输出的时间数据是否正确,且考虑了闰年、大小月的情况。
实现
实现的python脚本(py_test.py)
# -*- coding: utf-8 -*-
from datetime import datetime
from tqdm import tqdmdef check_datetime_format(datetime_str):try:datetime.strptime(datetime_str, '%Y-%m-%d-%H:%M:%S')return Trueexcept ValueError:return Falsedef is_datetime_increasing(datetimes):prev_datetime = Nonefor i, datetime_str in enumerate(tqdm(datetimes, desc="检查日期时间递增", unit="行")):current_datetime = datetime.strptime(datetime_str, '%Y-%m-%d-%H:%M:%S')if prev_datetime is not None and current_datetime <= prev_datetime:return False, i + 1 # 返回错误数据的行号prev_datetime = current_datetimereturn True, Nonedef main():file_name = "log.txt" # 指定当前目录下的log.txt文件try:with open(file_name, 'r') as file:datetime_data = file.read().strip().split()except IOError:print("文件不存在,请检查文件路径和文件名是否正确")return# 检查日期时间格式for i, datetime_str in enumerate(tqdm(datetime_data, desc="检查日期时间格式", unit="行")):if not check_datetime_format(datetime_str):print("日期时间格式错误,请检查以下数据:%s,行号:%d" % (datetime_str, i + 1))return# 检查日期时间递增is_increasing, error_line = is_datetime_increasing(datetime_data)if is_increasing:print("日期时间数据符合正常时间增加的格式")else:print("日期时间数据不符合正常时间增加的格式,错误的行号是:%d" % error_line)if __name__ == "__main__":main()
使用方法
1、需要准备输入的数据内容
在py脚本的同目录下生成一个log.txt文件,文件的内容参考如下为
2023-01-01-08:00:00
2023-01-01-08:00:01
2023-01-01-08:00:02
2023-01-01-08:00:03
2023-01-01-08:00:04
2023-01-01-08:00:05
2023-01-01-08:00:06
2023-01-01-08:00:07
2023-01-01-08:00:08
2023-01-01-08:00:09
2023-01-01-08:00:10
2023-01-01-08:00:11
2023-01-01-08:00:12
2023-01-01-08:00:13
2023-01-01-08:00:14
2023-01-01-08:00:15
2023-01-01-08:00:16
2023-01-01-08:00:17
2023-01-01-08:00:18
2023-01-01-08:00:19
2023-01-01-08:00:20
2023-01-01-08:00:21
2023-01-01-08:00:22
2023-01-01-08:00:23
2023-01-01-08:00:24
2023-01-01-08:00:25
2、安装python 的tqdm包
pip install tqdm
3、执行脚本
python py_test.py
执行脚本后会得到输出结果如下(日期数据递增是正确的)
root:~/code$ python .\py_test=.py
检查日期时间格式: 100%|██████████████████████████████████████████████████| 4289849/4289849 [00:34<00:00, 123406.39行/s]
检查日期时间递增: 100%|██████████████████████████████████████████████████| 4289849/4289849 [00:34<00:00, 123406.20行/s]
日期时间数据符合正常时间增加的格式
如果数据递增不正取(手动修改第22行的日期多一天),则输出以下结果
root:~/code$ python .\py_test=.py
检查日期时间格式: 100%|██████████████████████████████████████████████████| 4289849/4289849 [00:35<00:00, 122178.22行/s]
检查日期时间递增: 0%| | 21/4289849 [00:00<?, ?行/s]
日期时间数据不符合正常时间增加的格式,错误的行号是:22
错误的数据如下
2023-01-01-08:00:00
2023-01-01-08:00:01
2023-01-01-08:00:02
2023-01-01-08:00:03
2023-01-01-08:00:04
2023-01-01-08:00:05
2023-01-01-08:00:06
2023-01-01-08:00:07
2023-01-01-08:00:08
2023-01-01-08:00:09
2023-01-01-08:00:10
2023-01-01-08:00:11
2023-01-01-08:00:12
2023-01-01-08:00:13
2023-01-01-08:00:14
2023-01-01-08:00:15
2023-01-01-08:00:16
2023-01-01-08:00:17
2023-01-01-08:00:18
2023-01-01-08:00:19
2023-01-02-08:00:20
2023-01-01-08:00:21
可以看到第22行(就是倒数第二行)的日期多算了一天
总结
使用python脚本进行数据检查还是很方便的
免责声明:本文内容含网络参考、作者编写等,内容版权归原作者所有,未经允许,禁止转载。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。
这篇关于python笔记-检测时间数据递增正确性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!