我有一些python代码以一定的间隔写入文件,
chainer.serializers.save_npz(model_path, model)
其中model
是Chainer模型,并且model_path
设置为现有的可写路径models/my_test.model
。
在代码执行过程中的任意时间,在多次成功写入promtps之后:
[Errno 13] Permission denied.
我正在Red Hat Enterprise Linux Server 7.5(Maipo)系统上通过ssh运行代码。有足够的可用空间,所以这不是问题。
我尝试在每次写入之前使用chmod更改文件的权限,但没有任何改变。
我注意到的另一件奇怪的事情是,即使我用一个应依次运行几个程序的shell脚本运行python代码,如果一个程序由于权限错误而中断,下一个程序也不会启动。
知道发生了什么吗?
答案 0 :(得分:0)
当先前触发的运行仍在执行文件上的任务时,会发生此问题。因此,请使用以下代码段确保文件上没有打开任何句柄。如果打开,则关闭手柄或等待它完成
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