Я думаю, что вы можете использовать комбинацию вызова os.stat
и фильтрацию каталогов, заданных os.walk
, чтобы делать то, что вы хотите. Примерно так:
import os
for root, dirs, files in os.walk(somerootdir) :
do_processing(root, dirs, files)
dirs = [i for i in dirs if os.stat(os.path.join(root, i)).st_dev == os.stat(root).st_dev]
Это должно изменить список каталогов, в которые нужно перейти, удалив те, которые не имеют того же устройства.
Я понятия не имею, как он будет работать на OS X, но, похоже, он работает здесь, в Linux, после небольшого тестирования.