我有一个函数,它接受包含times(csv文件)的源文件,读取它,然后按顺序对行进行排序并将它们写入目标文件。但是,如果源csv文件不存在,我需要引发FileNotFoundError。我之前提出了异常,例如,如果参数不是整数,我必须使用以下方法引发ChangeParameterError:
startmo=201601
endmo=201705
currmo=$startmo
# this requires GNU date
# on MacOS, you can install this via macports and invoke it as gdate
next_month() {
date -d "+1 month ${1:0:4}-${1:4:2}-15" +%Y%m
}
while [[ $currmo <= $endmo ]]; do
currmo=$(next_month "$currmo")
files=( *"$currmo"* )
[[ -e $files ]] || { echo "No files found for month $currmo" >&2; continue; }
printf '%s\n' "${files[@]}"
done
然后在我的功能中提高它。
对于我的问题,我的功能如下:
class ChangeParameterError(Exception):
pass
感谢任何帮助!
答案 0 :(得分:2)
如果找不到指定的文件,尝试打开文件时,FileNotFoundError
调用将自动引发open
。
答案 1 :(得分:1)
python会自动引发异常。但是您可能需要将open
用try-except
包裹到捕获异常,而不会破坏您的代码:
try:
s = open(src,'r')
except FileNotFoundError:
print('file not found')