我想以递归方式更改一个目录的组名,我使用os.chown()来做到这一点。但我在os.chown()中找不到像(chgrp -R)这样的递归标志。
答案 0 :(得分:2)
为什么不把命令传递给shell?
os.system("chgrp -R ...")
答案 1 :(得分:1)
我写了一个函数来执行chgrp -R
def chgrp(LOCATION,OWNER,recursive=False):
import os
import grp
gid = grp.getgrnam(OWNER).gr_gid
if recursive:
if os.path.isdir(LOCATION):
os.chown(LOCATION,-1,gid)
for curDir,subDirs,subFiles in os.walk(LOCATION):
for file in subFiles:
absPath = os.path.join(curDir,file)
os.chown(absPath,-1,gid)
for subDir in subDirs:
absPath = os.path.join(curDir,subDir)
os.chown(absPath,-1,gid)
else:
os.chown(LOCATION,-1,gid)
else:
os.chown(LOCATION,-1,gid)