os.rename()
o shutil.move()
Ambos emplean la misma sintaxis:
os.rename("path/to/current/file.foo", "path/to/new/desination/for/file.foo")
shutil.move("path/to/current/file.foo", "path/to/new/destination/for/file.foo")
Nótese que en ambos casos debe existir el directorio en el que se crea el nuevo archivo, (pero, en Windows, un archivo con ese nombre no debe o se generará una excepción). Tenga en cuenta también que debe incluir el nombre del archivo (file.foo
) en los argumentos de origen y de destino. Si se cambia, el archivo cambiará de nombre o se moverá.
Como se ha observado en los comentarios de otras respuestas, shutil.move
simplemente llama a os.rename
en la mayoría de los casos. Sin embargo, si el destino está en un disco diferente de la fuente, en su lugar, copiará y luego eliminará el archivo fuente.
para aquellos que están familiarizados con [el comando 'mv' de gnu-coreutils] (https://www.gnu.org/software/coreutils/manual/html_node/mv-invocation.html),' shutil.move 'tiene un caso de borde donde difiere la función' shutil.move'. [Vaya aquí para una redacción completa] (https://stackoverflow.com/questions/31813504). ** En resumen, el 'shutil 'de Python.move' generará una excepción (pero gnu-coreutils 'mv' no) ** cuando su destino sea un directorio y el directorio ya tenga un archivo con el mismo nombre que la fuente (de nuevo para obtener más información, consulte el enlace provisto en el oración anterior). –