python

时间:2019-01-10 11:31:42

标签: python windows inode fstat

我想在Windows计算机中获取文件的inode,所以首先我尝试了os.stat('./filename.txt').st_ino 在我的REPL中,我得到的输出是0L

我对其他两个文件尝试了相同的操作,并获得了相同的输出。

然后,我尝试了 os.fstat(open("filename.txt", "r").fileno()).st_ino,并且输出中有一个长整数。对于不同的文件,整数正在更改。因此,我认为os.fstat适用于Windows,而os.stat则不适用。有人可以向我解释这种行为的原因以及两者之间的其他区别吗?

1 个答案:

答案 0 :(得分:1)

在Windows上的Python 2中,stat调用GetFileAttributesExFindFirstFile以获取标准文件信息,包括文件属性(例如目录,只读),大小和时间戳。 fstat调用GetFileType(即字符,管道,磁盘)和GetFileInformationByHandle,它们提供标准信息以及文件索引号(在某些方面类似于inode,但实际上不是)硬链接和卷序列号(未使用)。

Python 2距离使用寿命即将结束。我建议您升级到Python 3,该Python 3改进了Windows的stat实施,并进一步改进了开发