Я просматривал один из скриптов python, который ищет файлы и перечисляет их разрешения.Я все еще учусь на Python, и во время изучения этого кода я столкнулся со следующими вопросами:
В строках ниже, что подразумевается под строкой "mode = stat.SIMODE (os.lstat(file) [stat.ST_MODE]) "? какое значение возвращается в " mode "?и как это работает в предоставлении информации о разрешениях?Был бы признателен, если бы кто-то мог объяснить это.
Кроме того, мне нужно понять , как работают вложенные циклы for в этом сегменте в отношении получения желаемого результата преобразования имен файлов и соответствующих разрешений?
А каково здесь значение «уровень»?
Буду очень признателен, если кто-нибудь сможет ответить на поставленные выше вопросы и дать какое-либо соответствующее руководство.Заранее спасибо.
Весь код:
import stat, sys, os, string, commands
try:
#run a 'find' command and assign results to a variable
pattern = raw_input("Enter the file pattern to search for:\n")
commandString = "find " + pattern
commandOutput = commands.getoutput(commandString)
findResults = string.split(commandOutput, "\n")
#output find results, along with permissions
print "Files:"
print commandOutput
print "================================"
for file in findResults:
mode=stat.S_IMODE(os.lstat(file)[stat.ST_MODE])
print "\nPermissions for file ", file, ":"
for level in "USR", "GRP", "OTH":
for perm in "R", "W", "X":
if mode & getattr(stat,"S_I"+perm+level):
print level, " has ", perm, " permission"
else:
print level, " does NOT have ", perm, " permission"
except:
print "There was a problem - check the message above"