python .rstrip 移除了一个多余的字符
我想从日期中去掉秒数:
>>> import datetime
>>> test1 = datetime.datetime(2011, 6, 10, 0, 0)
>>> test1
datetime.datetime(2011, 6, 10, 0, 0)
>>> str(test1)
'2011-06-10 00:00:00'
>>> str(test1).rstrip('00:00:00')
'2011-06-10 '
>>> str(test1).rstrip(' 00:00:00')
'2011-06-1'
为什么'10'后面的0被去掉了呢?
2 个回答
7
rstrip
是用来去掉字符串末尾的字符的,它接受一组字符(虽然你可以传入任何可迭代的东西,比如你例子中的 str
),而不是单一的字符串。
顺便说一下,datetime.datetime
的字符串表示方式并不是固定的,你不能完全依赖它。相反,你可以在 isoformat
方法上使用 date 或者 strftime
方法:
>>> import datetime
>>> test1 = datetime.datetime(2011, 6, 10, 0, 0)
>>> test1.date().isoformat()
'2011-06-10'
>>> test1.strftime('%Y-%m-%d')
'2011-06-10'
12
str.rstrip()
这个方法并不是用来删除一个确切的字符串,而是会删除字符串中出现的所有字符。因为你知道要删除的字符串的长度,所以你可以简单地使用
str(test1)[:-9]
或者更好的方法是
test1.date().isoformat()