Requisito previo: Módulo OS en Python.
El método os.replace() en Python se usa para cambiar el nombre del archivo o directorio. Si el destino es un directorio, se generará OSError . Si el destino existe y es un archivo, se reemplazará sin error si el usuario que realiza la acción tiene permiso. Este método puede fallar si el origen y el destino están en diferentes sistemas de archivos.
Sintaxis: os.replace(origen, destino, *, src_dir_fd=Ninguno, dst_dir_fd=Ninguno2)
Parámetro:
- source: Nombre del archivo o directorio al que queremos renombrar.
- destino: Nombre que queremos dar en destino.
- src_dir_id: este parámetro almacena el
descriptor de archivo o archivo del directorio de origen que hace referencia a un directorio.- dst_dir_fd: Es un descriptor de archivo que hace referencia a un directorio
y la ruta para operar. Debería ser relativo, la
ruta será relativa a ese directorio. Si
la ruta es absoluta, se ignora dir_fd.Tipo de devolución: este método no devuelve ningún valor.
Código #1 : uso del método os.replace() para cambiar el nombre de un archivo.
Python3
# Python program to explain os.replace() method # importing os module import os # file name file = "f.txt" # File location which to rename location = "d.txt" # Path path = os.replace(file, location) # renamed the file f.txt to d.txt print("File %s is renamed successfully" % file)
Producción:
File f.txt is renamed successfully
Código #2 : Manejo de posibles errores. (Si se otorgan los permisos necesarios, la salida será como se muestra a continuación)
Python
# Python program to explain os.replace() method # importing os module import os # Source file path source = './file.txt' # destination file path dest = './da' # try renaming the source path # to destination path # using os.rename() method try: os.replace(source, dest) print("Source path renamed to destination path successfully.") # If Source is a file # but destination is a directory except IsADirectoryError: print("Source is a file but destination is a directory.") # If source is a directory # but destination is a file except NotADirectoryError: print("Source is a directory but destination is a file.") # For permission related errors except PermissionError: print("Operation not permitted.") # For other errors except OSError as error:
Producción:
Source is a file but destination is a directory.