引发FileNotFoundError

时间:2016-06-16 20:52:19

标签: python csv exception filenotfoundexception

我有一个函数,它接受包含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

感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

如果找不到指定的文件,尝试打开文件时,FileNotFoundError调用将自动引发open

答案 1 :(得分:1)

python会自动引发异常。但是您可能需要将opentry-except包裹到捕获异常,而不会破坏您的代码:

try:
    s = open(src,'r')
except FileNotFoundError:
    print('file not found')