我正在尝试创建一个文件夹并在其中创建一个文件。
每当我创建该文件夹(通过 Python)时,它都会创建一个文件夹,该文件夹根本没有给我任何权限和只读模式。
当我尝试创建文件时,我得到一个 IOError。
Error: <type 'exceptions.IOError'>
我尝试创建(和搜索)所有其他模式的描述(0770 除外)。
谁能给我光?其他模式代码是什么?
我正在尝试创建一个文件夹并在其中创建一个文件。
每当我创建该文件夹(通过 Python)时,它都会创建一个文件夹,该文件夹根本没有给我任何权限和只读模式。
当我尝试创建文件时,我得到一个 IOError。
Error: <type 'exceptions.IOError'>
我尝试创建(和搜索)所有其他模式的描述(0770 除外)。
谁能给我光?其他模式代码是什么?
创建文件夹后,您可以设置权限os.chmod
mod是用base 8写的,如果你把它转换成二进制,那就是
000 111 111 000
rwx rwx rwx
第一个rwx
是所有者,第二个是组,第三个是世界
r=读,w=写,x=执行
您最常看到的权限是
7 读/写/执行 - 您需要执行目录才能看到内容
6 读/写
4 只读
当您使用os.chmod
时,使用八进制表示法最有意义,所以
os.chmod('myfile',0o666) # read/write by everyone
os.chmod('myfile',0o644) # read/write by me, readable for everone else
请记住,我说过您通常希望目录是“可执行的”,以便您可以查看内容。
os.chmod('mydir',0o777) # read/write by everyone
os.chmod('mydir',0o755) # read/write by me, readable for everone else
注意: 的语法0o777
适用于 Python 2.6 和 3+。否则对于 2 系列它是0777
。2.6 接受任一语法,因此您选择的语法取决于您是要向前兼容还是向后兼容。
你可能有一个时髦的 umask。os.umask(0002)
在制作目录之前尝试一下。
Python手册说:
os.mkdir(path[, mode])
使用数字模式模式创建一个名为 path 的目录。默认模式为 0777(八进制)。在某些系统上,模式被忽略。在使用它的地方,当前的 umask 值首先被屏蔽掉。可用性:Unix、Windows。
您是否指定了模式 - 您指定了哪种模式。您是否考虑过明确指定模式?程序的 umask 值设置为什么”
由于您在 Windows 上,这可能是一个废话。确保父目录上没有任何古怪的特殊权限,或者使用定义由您的帐户创建的任何目录获得的权限的策略设置。我怀疑这是一个 python 问题,因为我无法通过相对普通的 Vista 安装在 Windows 上重新创建问题。