[英]slicing a string from reverse in python
我有一个字符串,例如如下
i = 'backup_1.2012-12-19.tar.gz'
我只需要从相反的字符串中获取2012-12-19.tar.gz
(因为有时字符串会像'backup_2.2012-12-20.tar.gz','backup_3.2012-12-21.tar.gz'
)
所以无论字符串是什么,我需要将2012 to .gz
的字符从 python 中的反向切片2012 to .gz
谁能让我知道如何做这个python
你不能在第一个之后拿走所有东西吗.
?
>>> s.split('.', 1)[1]
'2012-12-19.tar.gz'
查看str.partition
:
In [160]: i = 'backup_1.2012-12-19.tar.gz'
In [161]: i.partition('.')
Out[161]: ('backup_1', '.', '2012-12-19.tar.gz')
In [162]: i.partition('.')[-1]
Out[162]: '2012-12-19.tar.gz'
编辑:如果你想“反转”日期:
In [163]: i.partition('.')[-1].partition('.')[0]
Out[163]: '2012-12-19'
In [164]: i.partition('.')[-1].partition('.')[0].split('-')[::-1]
Out[164]: ['19', '12', '2012']
In [165]: '-'.join(i.partition('.')[-1].partition('.')[0].split('-')[::-1])
Out[165]: '19-12-2012'
您可以使用带有负索引的切片:
s[-17:]
".".join(i.split(".")[1:])
这也将起作用。 但是乔恩的回答更贴切,因为您将只进行两次操作。
或按照以下方式进行。 即使字符串包含更多 '.',这将始终返回最后的字符串。 在开始。
".".join(i.split(".")[-3:])
i = "backup_1.2012-12-19.tar.gz"
z = i[9:26]
print(z)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.