¿Hay una manera de determinar si un subdirectorio está en el mismo sistema de archivos de python cuando se usa os.walk?

Estoy escribiendo un script de python que usa os.walk () para recorrer un árbol de directorios. Me gustaría darle la posibilidad de omitir los subdirectorios que están montados en un sistema de archivos diferente, de la misma forma que find -xdev . Al revisar la documentación en os.walk (), no vi ningún argumento que pasar para que lo haga automáticamente. ¿Hay algo que pueda usar para filtrarme? ¿Ojalá algo que funcione con Linux y Mac OS X?

os.path.ismount ()

Creo que puedes usar una combinación de la llamada os.stat y un filtro de los nombres dados por os.walk para hacer lo que quieras. Algo como esto:

 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] 

Eso debería modificar la lista de directorios a los que recurrir, eliminando aquellos que no tienen el mismo dispositivo.

No tengo idea de cómo funcionará en OS X, pero parece estar funcionando aquí en Linux, después de un poco de prueba.