python - 使用 python 中的字符串索引从文件名返回文件扩展名

标签 python string parsing text indexing

我在将这个逻辑写在纸上时遇到了一些麻烦:

我想要解析的字符串:“Jan - 2012 年演示文稿 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”。

这可以用更Pythonic的方式来完成吗?或者至少更有效率?

最佳答案

In [44]: stringy[stringy.rfind('.'):stringy.rfind('.')+4]
Out[44]: '.pdf'

关于python - 使用 python 中的字符串索引从文件名返回文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13194542/

相关文章:

string - 用字符串中的其他 ASCII 字符替换某些 ASCII 字符的简洁和安全的方法

c++ - 仅选择字符串 C++ 中的前几个字符

parsing - 将普通的 attoparsec 解析器代码转换为基于管道/管道的代码

PHP 解析 .txt

Python提示工具包: How to always open/show autocompleter?

python - 在正则表达式模式中获取捕获组的起始位置

python - 将列字符串转换/解析为日期时间值 - pandas

java - 如何在按键后解析下一个节点属性(Java DOM Parser)

python - 尝试使用Python计算单元格重复的次数(排除某些值)

python - Kivy 中的 RecycleView 模块