【发布时间】:2012-12-21 14:45:20
【问题描述】:
我写了这个函数来使用另一个函数,检查输出是否有正确的后缀。在我使用它之前,我有两个问题:
在这种情况下,
TypeError是不是最好的 exception?有什么内置函数可以代替我的吗?
代码:
def suffix_NameCheck(inFile):
if os.path.splitext(inFile)[1] is None:
raise TypeError('"%s" has not a suffix' % inFile)
else:
return inFile
【问题讨论】:
-
我希望一个名为
xxx_check的函数返回一个布尔值而不是抛出异常。但是,我认为ValueError更适合这种情况。 -
我更喜欢我的东西检查函数来返回布尔值。类似
def hasSuffix(inFile): return os.path.splitext(inFile)[1] is not None. -
假设你发现文件name(不是文件本身!这没有任何意义)有一个后缀(或没有); 现在是什么?为什么要关心其余代码?
-
请注意,您的条件不正确。
splitext()上的文档说,在未找到扩展名的情况下,2 元组中的第二个值将是一个空字符串,而不是None,因此您的条件将始终评估False。 -
@KarlKnechtel 我想知道 - 还不如
'.' in inFile
标签: python performance error-handling coding-style