拆分后我有一条线,如下所示:
lineaftersplit=Jan 31 00:57:07 2012 GMT
我如何从中仅获得 2012 年并比较它是否介于 (2010) 和 (2013) 之间
拆分后我有一条线,如下所示:
lineaftersplit=Jan 31 00:57:07 2012 GMT
我如何从中仅获得 2012 年并比较它是否介于 (2010) 和 (2013) 之间
如果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
您可以使用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
...
尝试这个:
st="Jan 31 00:57:07 2012 GMT".split()
year=int(st[3])
如果字符串始终采用这种格式,这实际上有效
str='Jan 31 00:57:07 2012 GMT'
str.split()[3]