在python中从反向切片字符串

在python中从反向切片字符串,python,string,slice,Python,String,Slice,我有一个字符串示例,如下所示 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切分到.gz 用python 有人能告诉我怎么做这个python吗?你能不能先把所有的东西都拿走 退房: 编辑:如果要反转日期: In [1

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

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切分到.gz 用python


有人能告诉我怎么做这个python吗?你能不能先把所有的东西都拿走

退房:

编辑:如果要反转日期:

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:]
这也会起作用。但是Jon的ans更合适,因为在那里你只需要做两次手术

或者按照下面的方法做。这将始终返回上一个字符串,即使该字符串开头包含更多“.”

".".join(i.split(".")[-3:])

您可能还需要str.split来获取日期以将其反转,并需要str.join来将文件名重新组合在一起。如果您要拆分并加入,则str.partition>>str.split,因为它为您提供了左边、右边和右边。这就是说,它与str.splitdelim 1一样有效,因此要将字符串切分为几个部分,str.split>>str.partitionRight,但是如果需要在不弄乱“.tar.gz”的情况下反转日期,您可以像我们这样做,在本例中。所有的文件名都有完全相同的固定长度格式。嘿,你能对这个答案做进一步的解释吗。顺便说一句,如果文件名为backup_234.2021…?您好,欢迎使用堆栈溢出!虽然这段代码可能会回答这个问题,但它是如何或为什么解决这个问题的,这将真正有助于提高您的帖子的质量。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。
s[-17:]
 ".".join(i.split(".")[1:]) 
".".join(i.split(".")[-3:])
i = "backup_1.2012-12-19.tar.gz"
z = i[9:26]
print(z)