Problema: avevo migliaia di file da rinominare e avevo un file di transcodifica in Excel che conteneva il nome attuale del file e il nuovo nome da attribuire.
Soluzione: ho estratto i nomi dei file (attuale e futuro) dal file Excel e li ho salvati in due file .txt (IN.txt e OUT.txt), poi ho scritto un programma in Python (che richiama un comando BASH) per rinominare i file utilizzando le corrispondenze trovate nei due file .txt.
Ecco di seguito il programma:
import os
print("Programma partito")
lines_in = [line_in.rstrip('\n') for line_in in open("IN.txt")]
print(lines_in)
print(len(lines_in))
lines_out = [line_out.rstrip('\n') for line_out in open("OUT.txt")]
print(lines_out)
print(len(lines_out))
i=0
while i < len(lines_in):
nome_file_in=lines_in[i]
nome_file_out=lines_out[i]
print("Rename " + nome_file_in + " in " + nome_file_out)
os.system("mv " + nome_file_in + " " + nome_file_out)
i=i+1
Ovviamente il numero di righe presenti nei due file deve essere uguale. Questo programma non effettua nessun controllo sul numero di righe; quindi in caso di differenze tra i due file, si verificheranno dei problemi.
Presente anche sulla mia pagina su GitHub.