gpt4 book ai didi

带有 GNU/Linux 并使用 os.makedirs() 的 Python3.7 - PermissionError : [Errno 13] Permission denied

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:44:14 25 4
gpt4 key购买 nike

import os

def create_dir(child_dir_str):

try:
pardir = os.path.abspath('static/')
original_umask = os.umask(0o777)
os.makedirs(pardir,exist_ok=True)
child_dir = os.path.join(pardir,child_dir_str)
os.makedirs(child_dir,exist_ok=True)
finally:
os.umask(original_umask)
print('static folder created:', os.path.isdir(pardir))
print('img folder created: ', os.path.isdir(child_dir))

create_dir('img')

当我执行上面的代码时,出现了这个错误:

[pc@pc-pc xfolder]$ python3.7 test.py
static folder created: True
img folder created: False
Traceback (most recent call last):
File "test.py", line 16, in <module>
create_dir('img')
File "test.py", line 10, in create_dir
os.makedirs(child_dir,exist_ok=True)
File "/usr/lib/python3.7/os.py", line 221, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/home/pc/Desktop/xfolder/static/img'
[pc@pc-pc xfolder]$ ls -l
total 8
d--------- 2 pc pc 4096 ago 27 15:45 static
-rw-r--r-- 1 pc pc 473 ago 27 15:39 test.py

如果在代码中我将进程的 umask 值设置为“0o777”,为什么 python 将静态文件夹的权限设置为“d--------”?
在使用makedirs 创建文件夹时,如何让python 将权限设置为777?

最佳答案

umask 指定不设置哪些权限。您可能需要 os.umask(0o000) 来代替。参见 http://man7.org/linux/man-pages/man2/umask.2.html获取更多信息。

关于带有 GNU/Linux 并使用 os.makedirs() 的 Python3.7 - PermissionError : [Errno 13] Permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52046178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com