python中返回文件扩展名的函数

我是
Python的初学者.我想了解以下函数,它返回该文件的扩展名:

def get_extn(filename):
    return filename[filename.rfind('.'):][1:]

我不明白为什么在rfind函数[]中有括号而不是()以及为什么在括号之前有:和[1:].我很感激解释.

最佳答案 你在这里看到的是一个有两次切片语法的函数.对于支持切片语法的对象,可以编写:

object[f:t]

有f和t指数.然后,您得到一个以f开头并以t结尾的子序列(t是独占的).如果没有提供f或t,那通常意味着我们从开始或结束切片.

您的问题中的函数有点隐秘,实际上相当于:

def get_extn(filename):
    f = filename.rfind('.')
    filename = filename[f:]
    return filename[1:]

所以首先我们获得最后一个点的索引,然后我们构造一个从f开始的子字符串,最后我们从索引1开始的子字符串构造一个子字符串(从而删除第一个字符’.’).

点赞