check permissions of directories in python

岁酱吖の 提交于 2020-06-11 06:59:06

问题


i want a python program that given a directory, it will return all directories within that directory that have 775 (rwxrwxr-x) permissions

thanks!


回答1:


Neither answer recurses, though it's not entirely clear that that's what the OP wants. Here's a recursive approach (untested, but you get the idea):

import os
import stat
import sys

MODE = "775"

def mode_matches(mode, file):
    """Return True if 'file' matches 'mode'.

    'mode' should be an integer representing an octal mode (eg
    int("755", 8) -> 493).
    """
    # Extract the permissions bits from the file's (or
    # directory's) stat info.
    filemode = stat.S_IMODE(os.stat(file).st_mode)

    return filemode == mode

try:
    top = sys.argv[1]
except IndexError:
    top = '.'

try:
    mode = int(sys.argv[2], 8)
except IndexError:
    mode = MODE

# Convert mode to octal.
mode = int(mode, 8)

for dirpath, dirnames, filenames in os.walk(top):
    dirs = [os.path.join(dirpath, x) for x in dirnames]
    for dirname in dirs:
        if mode_matches(mode, dirname):
            print dirname

Something similar is described in the stdlib documentation for stat.




回答2:


Take a look at the os module. In particular os.stat to look at the permission bits.

import  os

for filename in os.listdir(dirname):
   path=os.path.join(dirname, filename)
   if os.path.isdir(path):
       if (os.stat(path).st_mode & 0777) == 0775:
           print path



回答3:


Compact generator based on Brian's answer:

import os

(fpath for fpath 
   in (os.path.join(dirname,fname) for fname in os.listdir(dirname)) 
   if (os.path.isdir(fpath) and (os.stat(fpath).st_mode & 0777) == 0775))



回答4:


Does it have to be python?

You can also use find to do that :

"find . -perm 775"




回答5:


You can check 775 permission for files and directories using below command

path="location of file or directory"
if (oct(os.stat(path).st_mode)[-3:]=="775"):
    print(path)


来源:https://stackoverflow.com/questions/704945/check-permissions-of-directories-in-python

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!