python - 修改 os.stat 对象

标签 python

有没有办法编辑 os.stat 返回的对象?此时,我希望能够为对象添加一个文件名值,以便更容易地识别原始文件。

在这一点上,我能弄清楚的唯一方法是对 posix.stat_result 对象进行子类化并添加值(尽管我还没有尝试找出它的可行性)。那行得通吗?有没有更好的办法?

最佳答案

您可以通过这种方式将其转换为 dict:

import os
s = os.stat('.')
d = dict(zip('mode ino dev nlink uid gid size atime mtime ctime'.split(), s))

...然后向 dict 添加更多条目。

请注意,我只在其中包含了 10 个核心字段。如果你想覆盖all the possible fields那么你可以这样做:

import os
fields = 'mode ino dev nlink uid gid size atime mtime ctime blocks blksize rdev flags gen birthtime ftype attrs obtype'

s = os.stat('.')
d = dict((field,getattr(s,'st_'+field, None)) for field in fields.split())

关于python - 修改 os.stat 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44348067/

相关文章:

python - 使用字典查找 DataFrame 变量的值

python - 对于格式错误的 python 代码,sed 中的 camelCase 到 snake_case

python - 在 Python 中伪造回溯

python - 在 ListView 上测试 get_context_data() 会抛出 'AttributeError: object has no attribute ' object_list'

python - 为什么 weakref 在这个绑定(bind)方法上不起作用?

python - Unicode解码错误: 'cp932' codec can't decode byte 0xfc

Python Class() 没有参数错误。我正在使用 self

c++ - 将 C++ 头文件转换为 Python

python - 资源警告 : unclosed file <_io. BufferedReader 名称=4>

python - 在 Python 列表中按值对字典中的键进行排序