2009-06-09 75 views
4

是否有一个简单的方法来确定一个文件是否与另一个文件在同一个文件系统上?是否与python中的其他文件位于同一文件系统中?

以下命令:

import shutil 
shutil.move('filepatha', 'filepathb') 

会尝试和重命名文件(如果是在同一文件系统),否则会复制它,然后断开链接。

我想在调用这个命令之前找出它是否会执行快速或慢速选项,我该怎么做?

+0

为什么你还需要知道这一点? – SilentGhost 2009-06-09 15:32:27

回答

10

使用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