我的权限设置正确吗? (蟒蛇)

时间:2010-09-23 18:12:09

标签: python file-permissions

在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作为“其他”用户运行,为其启用了写入权限?

谢谢!

4 个答案:

答案 0 :(得分:3)

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

pngcrush -e-d选项告诉它如何编写输出。请阅读man以获取更多信息。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

另外(与输入和输出文件相同的问题无关),您可以使用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

答案 3 :(得分:0)

也许您应该为输出提供不同的(不存在的)文件名。你有没有在shell中尝试过相同的东西?