Python中一个文件是否与另一个文件在同一文件系统上?
有没有简单的方法可以判断一个文件和另一个文件是否在同一个文件系统上?
下面这个命令:
import shutil
shutil.move('filepatha', 'filepathb')
会尝试重命名文件(如果它们在同一个文件系统上),否则它会先复制文件,然后再删除原来的文件。
我想在执行这个命令之前,先知道它会执行快速的还是慢速的操作,我该怎么做呢?
1 个回答
12
使用 os.stat
(针对文件名)或者 os.fstat
(针对文件描述符)。结果中的 st_dev
就是设备号。如果这两个文件在同一个文件系统上,它们的设备号会是一样的。
import os
def same_fs(file1, file2):
dev1 = os.stat(file1).st_dev
dev2 = os.stat(file2).st_dev
return dev1 == dev2