问题

GO的标准库没有专门用于检查文件是否存在的函数(如Python的 os.path.exists ).这样做的惯用方法是什么?

  最佳答案

要检查文件是否不存在,相当于Python的if not os.path.exists(filename):

 if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err) {
  // path/to/whatever does not exist
}
 

要检查文件是否存在,相当于Python的if os.path.exists(filename):

编辑:根据最近的评论

 if _, err := os.Stat("/path/to/whatever"); err == nil {
  // path/to/whatever exists

} else if os.IsNotExist(err) {
  // path/to/whatever does *not* exist

} else {
  // Schrodinger: file may or may not exist. See err for details.

  // Therefore, do *NOT* use !os.IsNotExist(err) to test for file existence


}
 

  相同标签的其他问题

filegostandard-library