将这个逻辑写在纸上有点麻烦:

我想解析的字符串:"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'

10-02 05:47