python - 在python中获取以下内容的正则表达式
问题描述
我正在解析这个文件 internet.test 它有多个条目,其中一些是:
Jun 15 16:26:33 dnsmasq[1979]: query[AAAA] play.google.com from 192.168.1.11
Jun 15 16:27:13 dnsmasq[1979]: forwarded play.google.com to 8.8.8.8
Jun 15 16:27:45 dnsmasq[1979]: reply play.google.com is 2404:6800:4007:810::200e
我想获取日期和时间(例如:从 2015 年 6 月 1 日 16:26:33 开始,从 15 年 6 月 2 日 16:27:13 和 15 年 6 月 3 日 16:27:45 开始)并将其存储在列表(例如:日期= ['Jun 15 16:26:33','Jun 15 16:27:13','Jun 15 16:27:45'])。
我尝试从每行中提取前 14 个元素,如下所示,但它不起作用。
@staticmethod
def getDate():
Dates = []
date = ''
with open("internet.test", "r") as file:
for line in file:
for i in range(15):
date += line[i]
Dates.append(date)
return display(Dates)
是否可以使用正则表达式获取和存储日期和时间?
解决方案
您根本不需要正则表达式,将行剪切为 14 个字符很容易,line[:15]
并且您的整个循环可以通过一些列表理解简化为 1 行代码:
with open("internet.test", "r") as file:
return display([line[:15] for line in file])
或者通过两个步骤,使其更加明确和可读:
with open("internet.test", "r") as file:
Dates = [line[:15] for line in file]
return display(Dates)
推荐阅读
- pygame - ModuleNotFoundError:没有名为“pygame.time”的模块
- reactjs - reactjs中如何输入axios
- r - 选择在 r 中的每个组中至少出现 (n) 次的 id
- python - 欠采样并没有提高二进制分类的精度
- node.js - 递归排除名称以特定字符开头的文件和文件夹(使用 nodejs 和 glob)
- django - 在 Django 中调度任务
- r - 将 ggplot2 和 facet_grid 一起用于连续变量和分类变量 (R)
- git - 为什么“git pull origin master”命令会删除最近的合并提交?
- javascript - 为什么我的正则表达式返回 false?
- c - 将迭代函数转换为递归函数