使用 tf.gfile.DeleteRecursively 时,报 FailedPreconditionError 错误

代码是这样子的:

if tf.gfile.Exists('/home/sarah/data/projector/tree.py'):
    tf.gfile.DeleteRecursively("/home/sarah/data/projector/tree.py")

执行的时候总是报以下这个错:

tensorflow.python.framework.errors_impl.FailedPreconditionError: /home/sarah/data/projector/tree.py

去查官方文档,文档里说 FailedPreconditionError 这个错通常是因为尝试去读一个没有初始化的 variable 导致的,跟我这里的情况不符合。
后来发现是 DeleteRecursively 函数传入的参数有问题。
DeleteRecursively 函数的参数必须是一个directory,函数执行后会递归删除这个目录下的所有内容,最后把这个目录也删除掉,我的代码中传入的是文件路径,不是directory name, 所以才报的这个错。
改成这样就行了:

if tf.gfile.Exists('/home/sarah/data/projector/tree.py'):
    tf.gfile.DeleteRecursively("/home/sarah/data/projector")

执行时会递归删除projector目录。

你可能感兴趣的:(python,tensorflow)