写入文件

时间:2018-09-04 08:31:13

标签: python permissions redhat

我有一些python代码以一定的间隔写入文件,

chainer.serializers.save_npz(model_path, model)

其中modelChainer模型,并且model_path设置为现有的可写路径models/my_test.model

在代码执行过程中的任意时间,在多次成功写入promtps之后:

[Errno 13] Permission denied.

我正在Red Hat Enterprise Linux Server 7.5(Maipo)系统上通过ssh运行代码。有足够的可用空间,所以这不是问题。

我尝试在每次写入之前使用chmod更改文件的权限,但没有任何改变。

我注意到的另一件奇怪的事情是,即使我用一个应依次运行几个程序的shell脚本运行python代码,如果一个程序由于权限错误而中断,下一个程序也不会启动。

知道发生了什么吗?

1 个答案:

答案 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
相关问题