我是 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/