【发布时间】:2016-11-21 12:38:39
【问题描述】:
我正在尝试打开一个新文件并立即为其授予完整的系统读/写/执行权限。我这样做是这样的:
csvout = open("/Users/me/Google Drive/documentation/report.csv","w")
os.chmod("/Users/me/Google Drive/documentation/report.csv", 0o777)
此命令适用于我和另一位同事(她从她的帐户:/Users/coworker/ 运行它,但将其保存到我的帐户中的目录中,我已授予该目录完整的读/写权限)。但是,第二位同事在到达 os.chmod 行时收到错误,因为他显然没有权限在文件上使用 chmod。
有时 report.csv 文件在运行之前就存在,有时它不存在,但我看不出这会如何改变任何东西,因为无论如何打开文件时使用“w”选项都会覆盖它。
当父目录启用完整系统权限时,导致只有某些用户无法使用 chmod 命令的问题可能是什么?
【问题讨论】:
-
你的问题到底是什么?
-
@FredLarson 为澄清而编辑
-
只有文件的所有者才能更改权限。因此,如果在同事运行脚本时该文件已经存在,它将归前一个用户所有,他们将无法更改权限。
-
@Barmar 对,但是文件不会被覆盖,因为 open 命令使用了 'w' 选项?
-
您无法覆盖您没有写入权限的文件。