Python mkdir 给了我错误的权限
我正在尝试创建一个文件夹并在其中创建一个文件。
每当我创建该文件夹(通过Python)时,它都会创建一个完全不给我任何权限和只读模式的文件夹。
当我尝试创建文件时,出现 IOError。
Error: <type 'exceptions.IOError'>
我尝试创建(并搜索)所有其他模式(0770 除外)的描述。
谁能给我光明吗?其他模式代码是什么?
I'm trying to create a folder and create a file within it.
Whenever i create that folder (via Python), it creates a folder that gives me no permissions at all and read-only mode.
When i try to create the file i get an IOError.
Error: <type 'exceptions.IOError'>
I tried creating (and searching) for a description of all other modes (besides 0770).
Can anyone give me light? What are the other mode codes?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
创建文件夹后,您可以使用
os.chmod
设置权限。mod是以8进制编写的,如果将其转换为二进制,它将是
第一个
rwx
用于所有者,第二个用于组,第三个用于世界r=read,w=write,x=execute
您最常看到的权限是
7 读/写/执行 - 您需要执行目录才能查看内容
6 读/写
4 readonly
当您使用 os.chmod 时,使用八进制表示法最有意义
所以
记住我说过你通常希望目录是“可执行的”,这样你就可以看到内容。
注意:
0o777
的语法适用于 Python 2.6 和 3+。否则对于 2 系列,它是0777
。 2.6 接受任一语法,因此您选择的语法取决于您想要向前兼容还是向后兼容。After you create the folder you can set the permissions with
os.chmod
The mod is written in base 8, if you convert it to binary it would be
The first
rwx
is for owner, the second is for the group and the third is for worldr=read,w=write,x=execute
The permissions you see most often are
7 read/write/execute - you need execute for directories to see the contents
6 read/write
4 readonly
When you use
os.chmod
it makes most sense to use octal notationso
Remember I said you usually want directories to be "executable" so you can see the contents.
Note: The syntax of
0o777
is for Python 2.6 and 3+. otherwise for the 2 series it is0777
. 2.6 accepts either syntax so the one you choose will depend on whether you want to be forward or backward compatible.你可能有一个时髦的 umask。在创建目录之前尝试
os.umask(0002)
。You've probably got a funky umask. Try
os.umask(0002)
before making your directory.Python 手册说:
您是否指定了模式 - 您指定了哪种模式。您是否考虑过明确指定一种模式?程序的 umask 值设置为多少”
The Python manual says:
Have you specified a mode - which mode did you specify. Did you consider specifying a mode explicitly? And what is the program's umask value set to"
由于您使用的是 Windows,这可能是一个冒险。确保父目录上没有任何奇怪的特殊权限,或者定义由您的帐户创建的任何目录所获得的权限的策略设置没有任何奇怪的特殊权限。我怀疑这是一个 python 问题,因为我无法通过相对普通的 Vista 安装在 Windows 上重现该问题。
Since your on Windows, this might be a crapshoot. Make sure there aren't any wacky special permissions on the parent directory or with the policy settings that defines the permissions any directories created by your account get. I doubt this is a python problem as I haven't been able to recreate the problem on Windows with a relatively vanilla Vista install.