将这个逻辑写在纸上有点麻烦:
我想解析的字符串:"Jan - 2012 Presentation v1.3.ppt.pdf - 500KB"
该字符串可以变化,但结构始终为“ NAME + EXT + FILESIZE”
我想退还该扩展名。但是出于明显的原因,我不能只是split(".")
所以我想出了另外一些东西:
stringy = "Jan - 2012 Presentation v1.3.ppt.pdf - 500KB"
ext = [".pdf",".jpg",".ppt",".txt",".doc"]
for i in ext:
indx = stringy.find(i)
...
我被困在需要找出如何告诉Python从产生最大索引开始进行扩展的地方。应该是
whatiwant = stringy[indx:4]
之类的东西,但是我不知道如何告诉它只使用最大的索引...最大的索引显然意味着字符串中的最后一个扩展名,这就是我想要的扩展名。在此特定示例中,我不在乎“ ppt”,而在乎“ pdf”。可以用更Python化的方式做到这一点吗?或者至少更有效?
最佳答案
In [44]: stringy[stringy.rfind('.'):stringy.rfind('.')+4]
Out[44]: '.pdf'