2017-10-21 45 views
0

1つのディレクトリのグループ名を再帰的に変更したいのですが、これを行うにはos.chown()を使用しています。しかし、私はos.chown()で(chgrp -R)のような再帰フラグを見つけることができません。pythonにchgrp -Rと同等のものはありますか?

+0

正しいを実行する機能を書きました。手動で繰り返す。 –

+0

だから私はos.chown()を使ってos.walkとすべてのファイルグループを変更する必要がありますか? –

+0

@FujiCladoはい、 –

答えて

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) 
+0

なぜchgpr -Rをシェルに渡すだけでいいのですか? – mfnalex

2

あなたはコマンドをシェルに渡すだけではどうですか?

os.system("chgrp -R ...") 
関連する問題