我想在Windows计算机中获取文件的inode,所以首先我尝试了os.stat('./filename.txt').st_ino
在我的REPL中,我得到的输出是0L
。
我对其他两个文件尝试了相同的操作,并获得了相同的输出。
然后,我尝试了
os.fstat(open("filename.txt", "r").fileno()).st_ino
,并且输出中有一个长整数。对于不同的文件,整数正在更改。因此,我认为os.fstat适用于Windows,而os.stat则不适用。有人可以向我解释这种行为的原因以及两者之间的其他区别吗?
答案 0 :(得分:1)
在Windows上的Python 2中,stat
调用GetFileAttributesEx
或FindFirstFile
以获取标准文件信息,包括文件属性(例如目录,只读),大小和时间戳。 fstat
调用GetFileType
(即字符,管道,磁盘)和GetFileInformationByHandle
,它们提供标准信息以及文件索引号(在某些方面类似于inode,但实际上不是)硬链接和卷序列号(未使用)。
Python 2距离使用寿命即将结束。我建议您升级到Python 3,该Python 3改进了Windows的stat
实施,并进一步改进了开发