Go 的标准库没有专门用于检查文件是否存在的函数(如 Python 的os.path.exists)。什么是惯用的方式来做到这一点?
要检查文件是否不存在,相当于 Python 的if not os.path.exists(filename):
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 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 }