2009-06-09 1 views
4

Есть ли простой способ выяснить, находится ли файл в той же файловой системе, что и другой файл?Является ли файл в той же файловой системе, что и другой файл в python?

Следующая команда:

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

будет пытаться переименовать файл (если он находится на той же файловой системе), в противном случае он будет копировать его, а затем разъединить.

Я хочу узнать, прежде чем вызывать эту команду, будет ли она выполнять быстрый или медленный вариант, как мне это сделать?

+0

Зачем вам это нужно знать? – SilentGhost

+0

он должен выполняться распределенным механизмом задач на нескольких машинах, хотите получить оценку того, будет ли он действительно быстрым или очень медленным, чтобы узнать, как разделить задачи ... – Dan

ответ

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 
Смежные вопросы