首先,抱歉我的英语不好。
我正在编写一个python脚本,它比较两个不同目录中的文件。但是为了性能,我想知道:“目录是否在同一物理磁盘上?”,所以我可以同时读取它们以获得性能提升。
我目前的想法是获取“mount”命令输出,并获取/ dev / sd *目录路径并使用它们来识别磁盘。但有时你可以在其他地方安装一个已安装的目录(或类似的东西,我不太确定),所以事情变得复杂。
有没有更好的方法来做这件事,比如图书馆?
(如果有跨平台的方式,我会更感激,但似乎很难找到像这样的跨平台库。)
答案 0 :(得分:5)
您正在寻找linux中的stat函数,python也提供给您(参见http://docs.python.org/library/os.html#os.stat)。
您必须比较结果结构中的st_dev,如果它们匹配,则两个文件将位于同一文件系统中。
使用此功能尽可能便携(优于mount或df)。
Bonus:您不必运行昂贵的exec调用,并且可以进行容易出错的文本解析。
答案 1 :(得分:1)
使用mount
的更简单的替代方法可能是调用df <directory>
。
这会打印出文件系统。此外,在我的Ubuntu框中,将-P
传递给df
会使输出更容易解析。