Python mkdir给了我错误的权限

Geo*_*lva 9 python windows filesystems mkdir

我正在尝试创建一个文件夹并在其中创建一个文件.

每当我创建该文件夹(通过Python)时,它会创建一个文件夹,该文件夹根本不提供任何权限和只读模式.

当我尝试创建文件时,我得到一个IOError.

Error:  <type 'exceptions.IOError'>
Run Code Online (Sandbox Code Playgroud)

我尝试创建(和搜索)所有其他模式的描述(除了0770).

有人能给我点亮吗?其他模式代码是什么?

Joh*_*ooy 18

创建文件夹后,您可以使用设置权限 os.chmod

mod用base 8编写,如果你把它转换成二进制就可以了

000 111 111 000
    rwx rwx rwx
Run Code Online (Sandbox Code Playgroud)

第一个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
Run Code Online (Sandbox Code Playgroud)

记得我说你通常希望目录是"可执行的",这样你就可以看到内容了.

os.chmod('mydir',0o777)  # read/write by everyone
os.chmod('mydir',0o755)  # read/write by me, readable for everone else
Run Code Online (Sandbox Code Playgroud)

注意:0o777Python 2.6和3+ 的语法.否则为2系列0777.2.6接受任一语法,因此您选择的语法将取决于您是要向前还是向后兼容.

  • `0oNNN` 适用于≥2.6。`0NNN` 适用于 &lt;3.0。2.5 不理解新语法,3.0 不理解旧语法。 (3认同)
  • @Jonathan,这是 Python3 中的语法错误。0oNNN 符号是首选,因为它更明确。0oNNN 在 Python2 和 Python3 中都有效 (2认同)

Jon*_*erg 5

你可能有一个时髦的umask.os.umask(0002)在创建目录之前尝试一下.