我有一些python代码以一定的间隔写入文件
chainer.serializers.save_npz(model_path, model)
其中model
是Chainer模型,model_path
被设置为现有的可写路径models/my_test.model
。
在执行代码期间的随机点,在众多成功的编写器提示之后:
[Errno 13] Permission denied.
我在Red Hat Enterprise Linux Server 7.5(Maipo)系统上通过ssh运行代码。有充足的自由空间,所以这不是问题。
我尝试在每次写入之前用chmod更改文件的权限,但它没有改变任何东西。
我注意到的另一个奇怪的事情是,即使我运行带有shell脚本的python代码,该脚本应该依次运行一些程序,如果由于权限错误而中断,则下一个不会启动。
知道发生了什么事吗?
当上次触发的运行仍在对文件执行任务时,会出现此问题。因此,请确保使用下面的代码段在文件上没有打开句柄。如果打开则关闭手柄或等待它完成
import psutil
def has_handle(fpath):
for proc in psutil.process_iter():
try:
for item in proc.open_files():
if fpath == item.path:
return True
except Exception:
pass
return False