【问题标题】:Difference between inode numbers of os.stat and os.fstat in pythonpython中os.stat和os.fstat的inode数量的区别
【发布时间】:2019-06-05 06:28:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: python windows inode fstat


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-04-30
      • 2015-02-05
      • 2011-01-04
      • 2012-03-22
      • 2016-05-25
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多