我正在尝试在Windows计算机上查找文件的文件权限。取决于我是否使用python方式,我始终可以为所有经过测试的文件获取666。如果我使用系统stat -c %a
命令,则会得到不同的响应。
我也尝试过
$ stat -c %a dummy.txt
644
>>> import os
>>> print(oct(os.lstat("dummy.txt").st_mode))
0o100666
>>> import os
>>> os.access("dummy.txt", os.X_OK)
True
我希望响应为0o100644,并且执行访问权限为False。有谁知道为什么我会遇到这些问题?
答案 0 :(得分:1)
我不确定os模块内部有很多基于文件的功能。如果您运行os.stat(filename),则始终可以插入结果。
http://docs.python.org/library/stat.html
$ touch dummy.txt
$ stat -c %a dummy.txt
644
os.stat返回644
In [1]: import os
In [2]: from stat import *
In [3]: oct(os.stat("dummy.txt")[ST_MODE])
Out[3]: '0o100644'
获取权限的另一种方法:
from os import popen
cmd = "stat -c '%A %a %n' *"
fname = "dummy.txt"
for i in popen(cmd):
p, m, n = i.split()
if n != fname:
continue
print(m)
break
输出
644