In C, useresti stat() e confronta il st_dev campo. In Python, os.stat dovrebbe fare lo stesso.
import os
def same_partition(f1, f2):
    return os.stat(f1).st_dev == os.stat(f2).st_dev
 
 Un altro modo è l'approccio "è meglio chiedere perdono che permesso":prova semplicemente a rinominarlo e, se fallisce, prendi il OSError appropriato e prova l'approccio della copia. cioè:
import errno
try:
    os.rename(source, dest):
except IOError, ex:
    if ex.errno == errno.EXDEV:
        # perform the copy instead.
 Questo ha il vantaggio che funzionerà anche su Windows, dove st_dev è sempre 0 per tutte le partizioni.
Nota che se vuoi effettivamente copiare e quindi eliminare il file sorgente (ad es. eseguire uno spostamento), piuttosto che limitarti a copiare, shutil.move farà già quello che vuoi:
Help on function move in module shutil:
move(src, dst)
    Recursively move a file or directory to another location.
    If the destination is on our current filesystem, then simply use
    rename.  Otherwise, copy src to the dst and then remove src.