Die had ik daarstraks al gevonden en opgelost, dat komt voor als er bestanden bij zijn zonder een "-" in de naam.
Dit zou het moeten oplossen:
=== modified file 'rename.py'
--- rename.py 2007-08-14 12:19:05 +0000
+++ rename.py 2007-08-14 12:19:23 +0000
@@ -11,7 +11,12 @@
for bestand in files:
if bestand[-4:] == '.mp3':
bestandSplit = bestand.split("-")
+
artiest = bestandSplit[0].strip()
+ if artiest[-4:] == '.mp3':
+ #er zit geen streepje in de bestandsnaam
+ continue
+
titel = bestandSplit[1][:-4].strip()
newTitel = self.sentenceCase(titel)
Of de hele nieuwe versie:
#!/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()
if artiest[-4:] == '.mp3':
#er zit geen streepje in de bestandsnaam
continue
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()