Rinominare file con Python3

Con questo articolo voglio innaugurare la sezione dedicata alla programmazione.

Durante il mio lavoro qualche volta mi capita di dover eseguire routine noiose e ripetitive come ad esempio dover rinminare un grande quantitativo di immagini che rappresentano i frame di una animazione o le porzioni di UI per qualche progetto embeded al quale lavoro. Ovviamente non mi va di falro e quindi cerco alternative più smart.

In questi casi ( e non solo ) Python è la risposta a tutto. In quest’articolo vedremo un semplicissimo script che rinominerà tutti i file di un certo tipo presenti in una specifica cartella.

Per questo script faremo uso del modulo os e in particulare useremo il metodo rename().

os.rename(src, dst) : src è il path al file da rinominare dst è l'indirizzo di destinazione con il nuovo nome.

Supponiamo di avere n immagini in una cartelle e che queste immagini abbiano dei nomi casuali. Vorremmo che le immagini abbiano invece lo stesso prefisso seguito da un numero incrementale es. foto1, foto2 etc

per fare questo ci servirà un altro metodo di os, listdir()

list = os.listdir(‘src’) : dove src è l'indirizzo della cartella dalla quale tireremo fuori il contenuto.

Di seguito il codice completo. Questo script scansiona una cartella in cerca di sotto cartelle contenenti file di tipo “.jpg” ( cambiando l’estensione potrete rinominare quello che volete). Userà il nome della cartellacome parte del nome aggiungendo un numero sequenziale dato dalla variabile count. I vari print sono utili come log per capire al meglio il codice.

# Python3 code to rename multiple
# files in a directory or folder

# importing os module
import os


# Function to rename multiple files
def main():
    for d in os.listdir('.'):
        if os.path.isdir(d):
            for count, filename in enumerate(os.listdir(d)):
                print(d)
                name, extension = os.path.splitext(filename)
                if extension == ".jpg":
                    dst = d + "\\" + d + str(count) + ".jpg"
                    src = d + "\\" + filename
                    print(dst)
                    print(src)
                    os.rename(src, dst)


# Driver Code
if __name__ == '__main__':
    # Calling main() function
    main()

Semplice e veloce, in un istante lanciando lo script potrete rinominare un gran numero di file.

attribuzione dell’immagine di copertina dell’articolo

Tecnologia foto creata da pressfoto – it.freepik.com