有没有一种方法可以编辑os.stat返回的对象?此时,我希望能够向对象添加一个文件名的值,以便更轻松地识别源文件。
目前,我唯一想到的方法是类似于子类化posix.stat_result对象并添加该值(尽管我尚未尝试过以确定其可行性)。那会起作用吗?有更好的方法吗?
目前,我唯一想到的方法是类似于子类化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个字段。如果您想涵盖所有可能的字段,可以尝试以下操作:
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())
d = {k: getattr(s, k) for k in dir(s) if k.startswith('st_')}
呢?这样就不用列出字段了。 - phihag