【问题标题】:Are my permissions set correctly? (python)我的权限设置是否正确? (Python)
【发布时间】:2011-04-16 10:17:28
【问题描述】:

在 python 中,我正在执行os.system('chmod o+w filename.png') 命令,因此我可以使用pngcrush 覆盖文件。

这些是我在python中设置后的权限:

-rw-rw-rw- 1 me users 925 Sep 20 11:25 filename.png

然后我尝试:

os.system('pngcrush filename.png filename.png')

这应该覆盖文件,但我得到:

Cannot overwrite input file filename.png

可能是什么问题? pngcrush 不是以“其他”用户身份运行的,并且启用了写入权限吗?

谢谢!

【问题讨论】:

    标签: python file-permissions


    【解决方案1】:

    问题在于您执行pngcrush 程序的方式,而不是filename.png 或Python 的权限。它只是尝试打开filename.png进行输入和输出,这当然是无效的。

    pngcrush -e-d 选项告诉它如何写输出。阅读其man 了解更多信息。

    【讨论】:

      【解决方案2】:

      也许pngcrush 不允许您对输入和输出文件使用相同的名称?您是否尝试过更改输出文件名?如果有,结果如何?

      【讨论】:

        【解决方案3】:

        顺便说一句(与输入输出文件相同的问题无关),可以使用os.chmod更改文件的模式,比运行chmod效率更高:

        import os
        import stat
        
        path = "filename.png"
        mode = os.stat(path).st_mode     # get current mode
        newmode = mode | stat.S_IWOTH    # set the 'others can write' bit
        os.chmod(path, newmode)          # set new mode
        

        【讨论】:

          【解决方案4】:

          也许您应该为输出提供不同的(不存在的)文件名。您是否在 shell 中尝试过相同的操作?

          【讨论】:

            猜你喜欢
            • 2011-05-02
            • 1970-01-01
            • 2015-11-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-11-20
            相关资源
            最近更新 更多