Digamos que tengo un archivo de entrada y un directorio de destino. ¿Cómo puedo determinar si el archivo de entrada está en el mismo disco duro (o partición) que el directorio de destino?Cómo determinar si un directorio está en la misma partición
Lo que quiero hacer es copiar un archivo si es diferente, pero moverlo si es el mismo. Por ejemplo:
target_directory = "/Volumes/externalDrive/something/"
input_foldername, input_filename = os.path.split(input_file)
if same_partition(input_foldername, target_directory):
copy(input_file, target_directory)
else:
move(input_file, target_directory)
Gracias a la respuesta de CesarB, la función implementada same_partition
:
import os
def same_partition(f1, f2):
return os.stat(f1).st_dev == os.stat(f2).st_dev
Tenga en cuenta que esto no funcionará en Windows, lo que deja a st_dev como 0 para todas las unidades. (Probablemente no sea un problema para el que pregunta ya que especifica las etiquetas osX y linux) – Brian