Python 确定文件扩展名

Python 确定文件扩展名,python,file,Python,File,我试图通过创建一个新文件来解决以下问题,然后尝试使用这些函数中的每一个来获取文件扩展名,但得到的都是错误 我做错了什么 “检查以下三个以文件名为参数的函数,并返回该文件的扩展名。例如,如果文件名为“myfile.tar.gz”,则函数的返回值应为“gz”。如果文件名没有扩展名,即当文件名仅为“myfile”时,函数应返回空字符串。“ 这些函数中的哪个正按照上面的描述来做他们应该做的事情 a) 获取\u扩展1和\u扩展3 b) 仅获取扩展名3 c) 获取扩展2和扩展3 d) 全部 试试看: ge

我试图通过创建一个新文件来解决以下问题,然后尝试使用这些函数中的每一个来获取文件扩展名,但得到的都是错误

我做错了什么

检查以下三个以文件名为参数的函数,并返回该文件的扩展名。例如,如果文件名为“myfile.tar.gz”,则函数的返回值应为“gz”。如果文件名没有扩展名,即当文件名仅为“myfile”时,函数应返回空字符串。

这些函数中的哪个正按照上面的描述来做他们应该做的事情

  • a) 获取\u扩展1和\u扩展3
  • b) 仅获取扩展名3
  • c) 获取扩展2和扩展3
  • d) 全部
试试看:

get_extension1("myfile.ext")
Out[60]: 'ext'

get_extension1("myfile")
Out[61]: 'myfile'                   # wrong

get_extension2("myfile.ext")
Out[62]: '.ext'

get_extension2("myfile")
Out[63]: ''

get_extension3("myfile.ext")
Out[64]: 'ext'

get_extension3("myfile")
Out[65]: ''
编辑:听起来属性错误是因为您为
文件名
传递的不是字符串。如果文件名是字符串,它们运行正常,但是如果文件名没有扩展名,则
获取扩展名1
会失败。

获取扩展名1(文件名)如果
文件名
不包含

get\u extension3(filename)
将引发错误,因为结尾处出现了
**

  SyntaxError: invalid syntax
get_extension1
应该是:

def get_extension1(filename):
    output = filename.split(".")
    return output[-1] if len(output)>1 else ''

我投票结束这个问题,作为离题。你得到的错误是什么?使用get_extension1,我得到:AttributeError:内置函数或方法没有属性“split”,其他两个函数也会出现相同的错误,但不是“has no split”,而是“has no rfind”@Moutaz Mahmoude,我希望这会有用。
def get_extension1(filename):
    output = filename.split(".")
    return output[-1] if len(output)>1 else ''