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

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

我不明白为什么 rfind 函数 [] 中有括号而不是 () 以及为什么括号前有 : 和 [1:] 。我很欣赏一个解释。

最佳答案

您在这里看到的是一个具有两次切片语法的函数。对于支持切片语法的对象,可以这样写:

object[f:t]

使用 ft 索引。然后您会得到一个以 f 开头并以 t 结尾的子序列( t 是独占的)。如果没有提供 ft ,这通常意味着我们从头或到尾切片。

您问题中的函数有点神秘,实际上相当于:
def get_extn(filename):
    f = filename.rfind('.')
    filename = filename[f:]
    return filename[1:]

因此,首先我们获得最后一个点的索引,然后我们构造一个从 f 开始的子字符串,最后我们从该子字符串中构造一个从索引 1 开始的子字符串(从而删除第一个字符,即 '.' )。

关于python - python中返回文件扩展名的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44837012/

10-13 22:56