Python:执行一个函数来检查文件是否有后缀

Gia*_*ear 1 python error-handling performance coding-style

我写了这个函数来使用另一个函数,检查输出是否有正确的后缀.在我使用之前,我有两个问题:

  1. 在这种情况下使用是TypeError最好的例外吗?

  2. 是否有一些我可以使用的内置功能而不是我的功能?

码:

def suffix_NameCheck(inFile):
    if os.path.splitext(inFile)[1] is None:
        raise TypeError('"%s" has not a suffix' % inFile)
    else:
        return inFile
Run Code Online (Sandbox Code Playgroud)

Amb*_*ber 7

没有内置函数可以做到这一点,因为

  1. 并非所有文件系统都使用扩展.
  2. 单独使用if语句可能更常见,而不是将其抛入函数中.

原因是你可能不得不在某处捕获该异常(除非你故意希望它结束​​程序,在这种情况下,可能有更好的方法来执行它而不是抛出异常,例如sys.exit).捕获异常的代码至少与代码有关,只需执行if检查本身并处理它.


Mar*_*ers 5

我不会从名为的函数引发异常suffix_NameCheck,而是返回TrueFalse代替.正常操作suffix_NameCheck不会受到影响,或者没有正确的值后缀,它的工作是检查该后缀.

该功能使用 suffix_NameCheck仍然可以抛出一个异常; ValueError在这种情况下使用可能是一个更好的例外.