Hiermee kom ik in de buurt denk ik. Test het wel eerst uit op een kleine map met kopietjes van de originelen om te kijken of het echt wel werkt en doet wat je wil!
Je moet onderstaande knippen en plakken in een nieuw bestand, dat opslaan als 'rename.py' of zoiets en dan uitvoerbaar maken. Het bestand in de map met mp3's zetten en dubbelklikken, kiezen voor "uitvoeren in terminal".
Edit: Je titels worden allemaal 'sentence case', dus het eerste woord een hoofdletter en de rest niet. Het kan dus zijn dat je nadien nog wel wat manueel moet aanpassen (bv. Amsterdam e.d.)
#!/usr/bin/python
import os
import sys
class Rename:
def __init__(self):
workingDir = sys.path[0]
files = os.listdir(workingDir)
for bestand in files:
if bestand[-4:] == '.mp3':
bestandSplit = bestand.split("-")
artiest = bestandSplit[0].strip()
titel = bestandSplit[1][:-4].strip()
newTitel = self.sentenceCase(titel)
newArtiest = self.artiestStrip(artiest)
print newArtiest
print newTitel
print ' '
nieuwBestand = newArtiest + " - " + newTitel + ".mp3"
os.rename(bestand, nieuwBestand)
enter = raw_input('Press key to quit.')
def sentenceCase(self, string):
words = string.split()
wordsSentence = []
i = 1
for word in words:
if i != 1:
word = word.lower()
else:
word = word[0].upper() + word[1:]
word.strip()
wordsSentence.append(word)
i += 1
return ' '.join(wordsSentence)
def artiestStrip(self, string):
words = string.split()
strippedWords = []
for word in words:
word = word[0].upper() + word[1:]
word.strip()
strippedWords.append(word)
return ' '.join(strippedWords)
if __name__ == "__main__":
Rename()