gpt4 book ai didi

Python lstat 给出的值与系统 stat 不同

转载 作者:行者123 更新时间:2023-12-01 07:37:07 32 4
gpt4 key购买 nike

我正在尝试查找 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。有谁知道我为什么会遇到这些问题?

最佳答案

我确信 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

关于Python lstat 给出的值与系统 stat 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56939334/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com