如何从拆分行获取字符串并在python中进行比较

时间:2013-06-20 09:30:56

标签: python

我在分割后有一条线,如下所示:

lineaftersplit=Jan 31 00:57:07 2012 GMT

如何从中获取2012年,并比较它是否介于(2010年)和(2013年)之间

4 个答案:

答案 0 :(得分:4)

如果lineaftersplit是字符串值,您可以使用datetime模块解析信息,包括年份:

import datetime

parsed_date = datetime.datetime.strptime(lineaftersplit, '%b %d %H:%M:%S %Y %Z')

if 2010 <= parsed_date.year <= 2013:
    # year between 2010 and 2013.

这样做的好处是你可以对datetime对象进行进一步的测试,包括排序和日期算术。

演示:

>>> import datetime
>>> lineaftersplit="Jan 31 00:57:07 2012 GMT"
>>> parsed_date = datetime.datetime.strptime(lineaftersplit, '%b %d %H:%M:%S %Y %Z')
>>> parsed_date
datetime.datetime(2012, 1, 31, 0, 57, 7)
>>> parsed_date.year
2012

答案 1 :(得分:2)

您可以使用str.rsplit

>>> strs = 'Jan 31 00:57:07 2012 GMT'

str.rstrip将返回如下列表:

>>> strs.rsplit(None,2)
['Jan 31 00:57:07', '2012', 'GMT']

现在我们需要第二项:

>>> year = strs.rsplit(None,2)[1]
>>> year
'2012'
>>> if 2010 <= int(year) <= 2013:  #apply int() to get the integer value
...     #do something
... 

答案 2 :(得分:0)

试试这个:

st="Jan 31 00:57:07 2012 GMT".split()
year=int(st[3])

如果字符串始终采用此格式

,这实际上有效

答案 3 :(得分:0)

 str='Jan 31 00:57:07 2012 GMT'
 str.split()[3]