我在分割后有一条线,如下所示:
lineaftersplit=Jan 31 00:57:07 2012 GMT
如何从中获取2012年,并比较它是否介于(2010年)和(2013年)之间
答案 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]