Python 迭代os.stat_result中包含的所有结果,并保留描述符
使用导入路径库作为pl, 我有这个:Python 迭代os.stat_result中包含的所有结果,并保留描述符,python,Python,使用导入路径库作为pl, 我有这个: f = pl.Path(fname) fstats = f.stat() print(fstats) 它打印了这个: os.stat_result(st_mode=33206, st_ino=22517998136958185, st_dev=705230555, st_nlink=1, st_uid=0, st_gid=0, st_size=176, st_atime=1621921747, st_mtime=1578950983, st_ctime=1
f = pl.Path(fname)
fstats = f.stat()
print(fstats)
它打印了这个:
os.stat_result(st_mode=33206, st_ino=22517998136958185, st_dev=705230555, st_nlink=1, st_uid=0, st_gid=0, st_size=176, st_atime=1621921747, st_mtime=1578950983, st_ctime=1578950983)
如何迭代每个结果而不丢失前面的等号描述符(例如“st_模式”)
如果我这样做:
for st in fstats:
print(st)
我只得到每个统计中包含的值
如果我将其传递到一个数据帧中,我只会得到一个统计结果的数据帧,没有描述符:
dfs = pd.DataFrame(data=f.stat())
print(dfs)
如果我将f.stat()转换为一个列表并将其传递到一个数据帧,它仍然会丢失描述符(如“st_模式”):
输出:
使用list()
Ex:
dfs = pd.DataFrame(data=[list(f.stat())])
不幸的是,我找不到答案。我不得不解析字符串f.stat():
嗯-这似乎只是跨列而不是跨行排列结果,但仍然没有像“st_模式”这样的关联描述符:
dfs = pd.DataFrame(data=[list(f.stat())])
fstats = str(f.stat()).replace("os.stat_result(","")
fstats = fstats.replace(", ", ",")
fstats = fstats.replace(")", "")
fstats = re.split(",", fstats)
#print(fstats)
for item in fstats:
fstat = re.split("=", item)
entry = [fstat[0], fstat[1]]