【发布时间】:2019-10-05 04:40:57
【问题描述】:
我正在使用以下代码创建一个目录(如果它不存在)和该目录中的一个文件:
import os
mystr = 'hello world!'
mypath = '/salam/me/'
if not os.path.exists(mypath):
oldmask = os.umask(000)
os.makedirs(mypath, 0755)
os.umask(oldmask)
text_file = open(mypath + "myfile", "w")
text_file.write("%s" % mystr)
text_file.close()
但我从控制台得到IOError: [Errno 13] Permission denied。我关注了其他类似问题的答案,他们建议取消屏蔽并使用0755/0o755/0777/0o777
但是在这种情况下它们似乎不起作用。我做错了什么?
跟进问题:我想在/var/lib/ 做这份工作。会有所不同吗? (在设置权限方面)
注意这是 Python 2.7 版
【问题讨论】:
-
如果你把权限 777 放在 /salam/me/ 问题就解决了吗?
-
怎么会这样?
-
该目录不存在。 777应该怎么放呢?
-
问题标题和正文中的第二个问题非常不同:
os.makedirs('/salam/me',...)将尝试在 root 拥有的/下创建它,但通常您的 Python 脚本将在某些用户。至于问 “我想在 /var/lib/ 中完成这项工作,会有所不同吗?”,这是一个关于 Unix 权限的问题,而不是关于 Python 的问题(如果你输入了mkdir ...从命令行,而在该用户帐户下,它也会失败)。此外,您暗示但从未说您的操作系统是 Linux;帮忙说一下是哪个版本?
标签: python permissions mkdir directory-permissions