写入文件时[Errno 13]权限的发生不一致

问题描述 投票:0回答:1

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

chainer.serializers.save_npz(model_path, model)

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

在执行代码期间的随机点,在众多成功的编写器提示之后:

[Errno 13] Permission denied.

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

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

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

知道发生了什么事吗?

python permissions redhat
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.