Renombrar mĂșltiples archivos en un directorio usando Python
directory rename (5)
No está dando todo el camino al cambiar el nombre, hágalo así:
import os
path = ''/Users/myName/Desktop/directory''
files = os.listdir(path)
for index, file in enumerate(files):
os.rename(os.path.join(path, file), os.path.join(path, ''''.join(str(index), ''.jpg'')))
Editar : Gracias a tavo, la primera solución movería el archivo al directorio actual, lo solucionó.
Estoy tratando de cambiar el nombre de varios archivos en un directorio usando este script de Python:
import os
path = ''/Users/myName/Desktop/directory''
files = os.listdir(path)
i = 1
for file in files:
os.rename(file, str(i)+''.jpg'')
i = i+1
Cuando ejecuto este script, aparece el siguiente error:
Traceback (most recent call last):
File "rename.py", line 7, in <module>
os.rename(file, str(i)+''.jpg'')
OSError: [Errno 2] No such file or directory
¿Porqué es eso? ¿Cómo puedo resolver este problema?
Gracias.
Primero debe hacer esta ruta como un directorio de trabajo actual. Suficientemente simple. El resto del código no tiene errores.
para que sea el directorio de trabajo actual:
os.chdir(path)
Según el comentario de @ daniel, os.listdir () devuelve solo los nombres de archivo y no la ruta completa del archivo. Use os.path.join (ruta, archivo) para obtener la ruta completa y cambiarle el nombre.
import os
path = ''C://Users//Admin//Desktop//Jayesh''
files = os.listdir(path)
for file in files:
os.rename(os.path.join(path, file), os.path.join(path, ''xyz_'' + file + ''.csv''))
Si sus archivos cambian de nombre de manera aleatoria, primero debe ordenar los archivos en el directorio. El código dado primero ordena y luego cambia el nombre de los archivos.
import os
import re
path = ''target_folder_directory''
files = os.listdir(path)
files.sort(key=lambda var:[int(x) if x.isdigit() else x for x in re.findall(r''[^0-9]|[0-9]+'', var)])
for i, file in enumerate(files):
os.rename(path + file, path + "{}".format(i)+".jpg")
Trabajé en un script rápido y flexible para encargarme de mostrar las diferencias, pedir confirmaciones y renombrar. Si necesita una solución que funcione, puede copiar este script y colocarlo en la carpeta cuyo nombre desea cambiar. https://gist.github.com/aljgom/81e8e4ca9584b481523271b8725448b8
Cambia el nombre de los archivos en el directorio actual pasando "funciones de cambio de nombre", cada función puede encargarse de un cambio. Luego determina los cambios que realizará cada función y muestra las diferencias usando colores, y solicita confirmación para realizar los cambios. Funciona en pycharm, no lo he probado en diferentes consolas