python中os.stat和os.fstat的inode编号之间的差异

python中os.stat和os.fstat的inode编号之间的差异,python,windows,inode,fstat,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不适用。有人能给我解释一下这种行为的原

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

我对其他几个文件进行了同样的尝试,得到了相同的输出

然后,我试着
os.fstat(open(“filename.txt”,“r”).fileno()).st_ino
我在输出中得到了一个长整数。对于不同的文件,整数正在更改。所以,我认为os.fstat适用于windows,而os.stat不适用。有人能给我解释一下这种行为的原因以及两者之间的其他区别吗?

在Windows上的Python2中,
stat
调用
GetFileAttributesEx
FindFirstFile
来获取标准文件信息,包括文件属性(例如目录、只读)、大小和时间戳
fstat
调用
GetFileType
(即字符、管道、磁盘)和
GetFileInformationByHandle
,后者提供标准信息加上文件索引号(在某些方面与inode类似,但实际上并非如此)、硬链接数和卷序列号(未使用)

Python 2距离生命结束还有一年。我建议您升级到Python3,它改进了Windows的
stat
实现,并进一步改进了开发