|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Feb 2014
Messaggi: 142
|
[Python] Problemino rinomina file ed uso os
Salve ragazzi, ho un "piccolo" problemino con questo script di Python. Siccome sull'hard disk esterno del PC ho tantissime serie Tv con nomi stroppiati, avevo pensato di fare un piccolo script che potesse agevolarmi nel mettere in ordine tutti gli episodi. Provandolo con file casuali funzionava benissimo ma quando sono andato a provarlo su una cartella di una serie mi da questo errore
Codice:
Traceback (most recent call last): File "C:/Python34/Renominator.py", line 31, in <module> Renominator("C:\\Suits 02") File "C:/Python34/Renominator.py", line 21, in Renominator os.rename(percorso+file, percorso +nome_serie+" " + stagione+" " + "e0"+str(numero_episodio) +" "+ qualita+estensione) FileExistsError: [WinError 183] Impossibile creare un file, se il file esiste già: 'C:\\Suits 02//Suits s02 e02 HDTV x264.srt' -> 'C:\\Suits 02//PSuits s02 e01 HDTV x264.srt' ![]() Codice:
import os def Renominator(cartella): numero_files= len([name for name in os.listdir(cartella)]) conta = 0 numero_episodio = -1 percorso = cartella+"//" nome_serie = input("Nome della serie: ") stagione = input("Stagione: ") stagione = "S0" + str(stagione) qualita = input ("Qualità: ") while conta <= numero_files: conta = conta + 1 numero_episodio = numero_episodio + 1 for file in os.listdir(cartella): (nome_vecchio, estensione) = (os.path.splitext(file)) if "e0"+str(numero_episodio) in file or "E0"+str(numero_episodio) in file: os.rename(percorso+file, percorso +nome_serie+" " + "E0"+str(numero_episodio) + " "+stagione+" "+ qualita+estensione) elif "e1"+str(numero_episodio) in file or "E1"+str(numero_episodio) in file: os.rename(percorso+file, percorso +nome_serie+" " + "E1"+str(numero_episodio)+ " "+stagione +" "+ qualita+estensione) elif "e2"+str(numero_episodio) in file or "E2"+str(numero_episodio) in file: os.rename(percorso+file, percorso +nome_serie+" " +"E2"+str(numero_episodio) +" "+stagione+" "+ qualita+estensione) elif "e3" + str(numero_episodio) in file or "E3"+str(numero_episodio) in file: print("Errore: ci sono più di 29 episodi") print("Serie rinominata...") def start(): risposta = input("Vuoi rinominare una cartella? Se si premi invio, altrimenti premi qualsiasi altro pulsante") while risposta == "": Cartella = (os.path.normpath(input("Inserire percorso directory: "))) Renominator(Cartella) risposta = input("Premi di nuovo invio per rinominare un'altra serie") print("Grazie per aver usato questo programma") start() ![]() Apparte gli scherzi, ogni consiglio/critica è più che ben accetto ![]() Grazie a tutti
__________________
Carbide 300r, Asrock H87 Pro4, I5-4670 + Hyper 212 evo, R9-290 Tri-x, Corsair VengeanceLP
Schermo: LG 23MA53D Mouse & Tastiera: G402 + G910 Mercatino: Feedback positivi: Simpsons Ultima modifica di francolol : 12-05-2015 alle 19:49. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Il codice non ha alcun problema di per sé. L'errore che ottieni è chiaramente spiegato nell'ultima riga dello stack trace:
Codice:
FileExistsError: [WinError 183] Impossibile creare un file, se il file esiste già: 'C:\\Suits 02//Suits s02 e02 HDTV x264.srt' -> 'C:\\Suits 02//PSuits s02 e01 HDTV x264.srt'
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Feb 2014
Messaggi: 142
|
Ma infatti se noti il nome con cui voglio rinominarlo è diverso. Non voglio ricreare il file, voglio solo cambiargli il nome ed anche cambiandolo tutto comunque mi dà errore
![]()
__________________
Carbide 300r, Asrock H87 Pro4, I5-4670 + Hyper 212 evo, R9-290 Tri-x, Corsair VengeanceLP
Schermo: LG 23MA53D Mouse & Tastiera: G402 + G910 Mercatino: Feedback positivi: Simpsons |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Sì, lo so, ma il punto è che il nuovo nome che vorresti dargli risulta già assegnato a un file. E' per questo che l'operazione fallisce.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Feb 2014
Messaggi: 142
|
Quote:
![]() ![]() Comunque grazie sempre a cdimauro, che ha sempre tanta pazienza ^_^
__________________
Carbide 300r, Asrock H87 Pro4, I5-4670 + Hyper 212 evo, R9-290 Tri-x, Corsair VengeanceLP
Schermo: LG 23MA53D Mouse & Tastiera: G402 + G910 Mercatino: Feedback positivi: Simpsons |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:57.