我正在创建一个使用os.makedirs("foo")
创建文件夹的程序。
但是,当我打开Windows 10文件资源管理器并右键单击已创建的新目录时,我注意到无法删除没有管理员权限的文件夹。
那么如何创建一个具有递归删除此文件夹权限的文件夹呢?
我使用:os.makedirs("data/base/{}".format(args[0].text), mode=0o777)
我使用以下方法删除它:
def delete_class(self, *args):
for root, dirs, files in os.walk("data/base/{}".format(self.clicked_class_to_delete.id), topdown=False):
for name in files:
filename = os.path.join(root, name)
os.chmod(filename, stat.S_IWUSR)
os.remove(filename)
for name in dirs:
os.rmdir(os.path.join(root, name))
shutil.rmtree("data/base/{}".format(self.clicked_class_to_delete.id)
)
答案 0 :(得分:2)
这样做:
os.makedirs(name,0777)
答案 1 :(得分:1)
从文档中:
os.makedirs(name, mode=0o777, exist_ok=False)
您可以找到文档here。
答案 2 :(得分:0)
也许您需要在 string report = string.Join(" ",
// 2 - number of phoenixes
phoenixes.Count().ToString(),
// phoenixes' exteriers (lengths and widths)
string.Join(" ", phoenixes),
// phoenixes' total years - a pinch of Linq - Select
string.Join(" ", phoenixes.Select(item => item.TotalYears))
);
Console.Write(report);
之前做os.umask(0)
,才能删除当前用户的掩码。
答案 3 :(得分:0)
基于时间戳的目录。经完全许可。
now = datetime.datetime.now().strftime("%y%m%d%H%M")
dirName = "/var/name-{}".format(now)
os.umask(0)
os.makedirs(dirName,mode=0o777)