python 中是否有任何等效的 chgrp -R?
Is there any equivalent of chgrp -R in python?
我想递归地更改一个目录的组名,我正在使用 os.chown() 来做到这一点。但是我在 os.chown().
中找不到像 (chgrp -R) 这样的任何递归标志
为什么不直接将命令传递给 shell?
os.system("chgrp -R ...")
我写了一个函数来执行 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)
我想递归地更改一个目录的组名,我正在使用 os.chown() 来做到这一点。但是我在 os.chown().
中找不到像 (chgrp -R) 这样的任何递归标志为什么不直接将命令传递给 shell?
os.system("chgrp -R ...")
我写了一个函数来执行 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)