gpt4 book ai didi

python - 递归设置文件权限的Python方式是什么?

转载 作者:IT老高 更新时间:2023-10-28 21:51:33 28 4
gpt4 key购买 nike

递归地将所有者和组设置为目录中的文件的“python方式”是什么?我可以将 'chown -R' 命令传递给 shell,但我觉得我错过了一些明显的东西。

我在纠结这个:


import os
path = "/tmp/foo"
for root, dirs, files in os.walk(path):
for momo in dirs:
os.chown(momo, 502, 20)

这似乎适用于设置目录,但应用于文件时失败。我怀疑文件没有得到完整的路径,所以 chown 失败,因为它找不到文件。错误是:

'OSError: [Errno 2] 没有这样的文件或目录:'foo.html'

我在这里俯瞰什么?

最佳答案

dirsfiles 列表总是相对于 root - 即,它们是 basename() 的文件/文件夹,即它们中没有 / (或 Windows 上的 \ )。如果你想让你的代码工作到无限的递归级别,你需要将目录/文件加入到 root 以获取它们的完整路径:

import os  
path = "/tmp/foo"
for root, dirs, files in os.walk(path):
for momo in dirs:
os.chown(os.path.join(root, momo), 502, 20)
for momo in files:
os.chown(os.path.join(root, momo), 502, 20)

我很惊讶 shutil 模块没有这个功能。

关于python - 递归设置文件权限的Python方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2853723/

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