Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何仅解析字符串中的时间戳_Python_Timestamp - Fatal编程技术网

Python 如何仅解析字符串中的时间戳

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, "%

我试图使用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, "%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()
,但它比我的答案快得多!你是对的,当然,我会改的。谢谢:)