francolol
09-05-2015, 12:53
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
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'
Il codice è questo (sicuramente farà pena ma dato che non programmo da un anno per mancanza di tempo e non ho mai potuto imparare davvero non insultatemi ahahahha :mc: )
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()
edit: codice corretto, c'era un altro errore che non aveva a che fare con il problema:)
Apparte gli scherzi, ogni consiglio/critica è più che ben accetto :D
Grazie a tutti
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'
Il codice è questo (sicuramente farà pena ma dato che non programmo da un anno per mancanza di tempo e non ho mai potuto imparare davvero non insultatemi ahahahha :mc: )
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()
edit: codice corretto, c'era un altro errore che non aveva a che fare con il problema:)
Apparte gli scherzi, ogni consiglio/critica è più che ben accetto :D
Grazie a tutti