【发布时间】:2012-05-31 06:41:06
【问题描述】:
问题:
如何有效地使用stat 函数来获得有意义的文件权限(用户、组和其他)。
详情:
我正在像这样查询文件权限:
statInfo = os.stat
permissions = stat.S_IMODE ( os.stat ( 'fooBar.txt' ).st_mode )
这会以十进制形式返回权限。所以如果fooBar.txt拥有八进制文件权限0700,这里permissions设置为十进制值448。我想要的是为每个权限设置 9 个变量(ownerRead,ownerWright,ownerExecute,groupRead,...)如果我要这样做,我会使用这样的蛮力方法:
statInfo = os.stat
permissions = stat.S_IMODE ( os.stat ( 'fooBar.txt' ).st_mode )
octPermissions = oct ( permissions )
ownerRead = octPermissions [1] >= 4
ownerWrite = octPermissions [1] == 2 or octPermissions [1] == 6 or octPermissions [1] == 3 or
ownerExecute = octPermissions [1] == 1 or octPermissions [1] == 5 or octPermissions [1] == 3
有没有更有效的方法来做到这一点而不必转换为八进制,因为这个函数会被调用很多次?
【问题讨论】:
-
如果要更改名称,只需将名称标记为
global。因为我怀疑你会修改os和stat模块,所以你不需要在任何地方将它们标记为global。 -
哎呀,我的错,我从函数内部复制了这个
-
我知道,我猜。让我再次告诉你:你不需要声明这些
global,因为没有这些,它们会自动从模块范围中查找。
标签: python permissions stat octal