Python 如何仅解析字符串中的时间戳
我试图使用python只解析日志文件中特定行的时间戳。这是文件中的行: 3月29日06:12:42 10.11.100.22[信息事件][警告]10.11.100.22: 事件,1234 我怎样才能从中得到时间戳?这是我目前正在使用的代码,它从文件中找到包含单词“WARNING”的行,然后获取时间戳Python 如何仅解析字符串中的时间戳,python,timestamp,Python,Timestamp,我试图使用python只解析日志文件中特定行的时间戳。这是文件中的行: 3月29日06:12:42 10.11.100.22[信息事件][警告]10.11.100.22: 事件,1234 我怎样才能从中得到时间戳?这是我目前正在使用的代码,它从文件中找到包含单词“WARNING”的行,然后获取时间戳 def is_Warning(self,line): if line.find("WARNING") >= 0: ts = time.strptime(line, "%
def is_Warning(self,line):
if line.find("WARNING") >= 0:
ts = time.strptime(line, "%b %d %H:%M:%S")
print "==================== %s" % ts
当我运行此命令时,我得到一个“ValueError:未转换的数据保留:10.11.100.22[info.events][WARNING]10.11.100.22:event,1234”
有人能帮忙吗?使用正则表达式
import re
...
def is_warning(self,line):
if line.find("WARNING") >= 0:
date = re.match(r"[A-Za-z]{3} \d{1,2} \d{2}:\d{2}:\d{2}",line).group()
ts = time.strptime(date, "%b %d %H:%M:%S")
print("===================== %s" % ts
请注意,time
是一个非常古老的模块。如果只需要获取时间,则应使用datetime.datetime.strtime(日期,格式).time()
。使用正则表达式
import re
...
def is_warning(self,line):
if line.find("WARNING") >= 0:
date = re.match(r"[A-Za-z]{3} \d{1,2} \d{2}:\d{2}:\d{2}",line).group()
ts = time.strptime(date, "%b %d %H:%M:%S")
print("===================== %s" % ts
请注意,time
是一个非常古老的模块。如果只需要获取时间,则应使用datetime.datetime.strtime(日期,格式).time()
。使用正则表达式
import re
...
def is_warning(self,line):
if line.find("WARNING") >= 0:
date = re.match(r"[A-Za-z]{3} \d{1,2} \d{2}:\d{2}:\d{2}",line).group()
ts = time.strptime(date, "%b %d %H:%M:%S")
print("===================== %s" % ts
请注意,time
是一个非常古老的模块。如果只需要获取时间,则应使用datetime.datetime.strtime(日期,格式).time()
。使用正则表达式
import re
...
def is_warning(self,line):
if line.find("WARNING") >= 0:
date = re.match(r"[A-Za-z]{3} \d{1,2} \d{2}:\d{2}:\d{2}",line).group()
ts = time.strptime(date, "%b %d %H:%M:%S")
print("===================== %s" % ts
请注意,
time
是一个非常古老的模块。如果只需要获取时间,则应使用datetime.datetime.strtime(date,format).time()
。strtime应匹配整个字符串,而不仅仅是开头。由于您知道线的长度,因此可以执行以下操作:
ts = time.strptime(line[:15].strip(), "%b %d %H:%M:%S")
[:15]方法将只返回字符串中的前15个字符,这是您唯一需要的字符。strtime应该匹配整个字符串,而不仅仅是开头。由于您知道线的长度,因此可以执行以下操作:
ts = time.strptime(line[:15].strip(), "%b %d %H:%M:%S")
[:15]方法将只返回字符串中的前15个字符,这是您唯一需要的字符。strtime应该匹配整个字符串,而不仅仅是开头。由于您知道线的长度,因此可以执行以下操作:
ts = time.strptime(line[:15].strip(), "%b %d %H:%M:%S")
[:15]方法将只返回字符串中的前15个字符,这是您唯一需要的字符。strtime应该匹配整个字符串,而不仅仅是开头。由于您知道线的长度,因此可以执行以下操作:
ts = time.strptime(line[:15].strip(), "%b %d %H:%M:%S")
[:15]方法将只返回字符串中的前15个字符,这是您唯一需要的字符。只要“day”是零填充值,该方法就有效。如果3月3日是
“3月3日06:12:42”
,则尾随空格将打断它。你可以做行[:15].strip()
,但它比我的答案快得多!你是对的,当然,我会改的。谢谢:)只要“天”是一个零填充值,它就可以工作。如果3月3日是“3月3日06:12:42”
,则尾随空格将打断它。你可以做行[:15].strip()
,但它比我的答案快得多!你是对的,当然,我会改的。谢谢:)只要“天”是一个零填充值,它就可以工作。如果3月3日是“3月3日06:12:42”
,则尾随空格将打断它。你可以做行[:15].strip()
,但它比我的答案快得多!你是对的,当然,我会改的。谢谢:)只要“天”是一个零填充值,它就可以工作。如果3月3日是“3月3日06:12:42”
,则尾随空格将打断它。你可以做行[:15].strip()
,但它比我的答案快得多!你是对的,当然,我会改的。谢谢:)