我是 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 开始的子字符串(从而删除第一个字符,即 '.'
)。关于python - python中返回文件扩展名的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44837012/