0

我有一个字符串,例如如下

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 中的反向切片字符

谁能让我知道如何做这个蟒蛇

4

5 回答 5

4

你不能在第一个之后把所有东西都拿走.吗?

>>> s.split('.', 1)[1]
'2012-12-19.tar.gz'
于 2012-12-21T07:34:47.943 回答
4

签出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'
于 2012-12-21T07:34:54.300 回答
4

您可以使用带有负索引的切片:

s[-17:]
于 2012-12-21T07:35:51.680 回答
1
 ".".join(i.split(".")[1:]) 

这也将起作用。但是乔恩的回答更贴切,因为您将只进行两次操作。

或按照以下方式进行。即使字符串包含更多“。”,这也将始终返回您最后的字符串。在开始。

".".join(i.split(".")[-3:])
于 2012-12-21T09:49:55.213 回答
-1
i = "backup_1.2012-12-19.tar.gz"
z = i[9:26]
print(z)
于 2021-06-06T12:33:07.293 回答