for i in aeb_bag_name: if i in record_path: pattern = r'\d{14}' result = re.search(pattern, i) print(result.group()) date_obj = datetime.datetime.strptime(result.group(), "%Y%m%d%H%M%S") hour = date_obj.hour minute = date_obj.minute second = date_obj.second a = f"{hour}:{minute}:{second}" print(a) with open('files.txt', 'r') as f: for line in f: if a in line: print(line)修改代码second值可能会大于或者小于文本中的值,上下浮动不超过2
时间: 2024-02-10 08:24:44 浏览: 71
如果你想修改代码以处理秒值的浮动范围,可以使用以下方法:
```python
import datetime
# 假设你已经定义了 aeb_bag_name、record_path 和 files.txt
for i in aeb_bag_name:
if i in record_path:
pattern = r'\d{14}'
result = re.search(pattern, i)
timestamp_str = result.group()
# 将时间戳字符串转换为 datetime 对象
date_obj = datetime.datetime.strptime(timestamp_str, "%Y%m%d%H%M%S")
hour = date_obj.hour
minute = date_obj.minute
second = date_obj.second
# 定义浮动范围
floating_range = 2 # 在这里设置你的浮动范围
# 遍历文件行并查找匹配的时间戳
with open('files.txt', 'r') as f:
for line in f:
if f"{hour}:{minute}" in line: # 只比较小时和分钟
time_parts = line.strip().split(':')
file_second = int(time_parts[2])
if abs(second - file_second) <= floating_range:
print(line)
```
在上述代码中,我们首先定义了浮动范围,即 `floating_range`,表示允许秒值与文件中的秒值相差的最大绝对值。在遍历文件行时,我们只比较小时和分钟部分,然后提取出文件行中的秒值,并检查它与时间戳中的秒值是否在浮动范围内。如果是,则打印该行。
请注意,上述代码假设文件中的时间格式为 `HH:MM:SS`,例如 `17:32:29`。如果你的文件行表示时间的方式不同,请相应地调整代码。
阅读全文