使用Python学习Linux中的目录物理磁盘
首先,抱歉我的英语不好。
我正在写一个Python脚本,用来比较两个不同文件夹里的文件。但是为了提高性能,我想知道:“这两个文件夹是在同一个物理硬盘上吗?”这样我就可以同时读取它们,提高效率。
我现在的想法是获取“mount”命令的输出,找到/dev/sd*的目录路径,然后用这些路径来判断硬盘。但是有时候你可以把一个已经挂载的目录再挂载到别的地方(或者类似的情况,我不是很确定),所以事情就变得复杂了。
有没有更好的方法,比如用某个库来实现?
(如果有跨平台的方法,我会更感激,但似乎很难找到这样的跨平台库。)
2 个回答
0
使用 mount
的一个更简单的方法是用 df <目录>
命令。
这个命令会显示出文件系统的信息。而且,在我的Ubuntu系统上,给 df
加上 -P
选项,可以让输出的内容更容易理解。
6
你在找Linux中的stat函数,Python也提供了这个功能(可以查看这个链接)。
你需要比较结果结构中的st_dev,如果两个文件的这个值相同,说明它们在同一个文件系统上。
使用这个函数是非常方便的,移植性很好(比使用mount或df要好)。
额外好处是,你不需要执行复杂的命令,也不用担心解析文本时出错。