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)