Found it!
I worked out one of the reasons my nasty little function is bad:
if '/' in sPath:
...
month = [sPath.split('/')[1] for x in range(len(days))]
sPath
was built by walking down into a directory and I used it to work out if I was looking at directories for days or months. This little fragment of code worked fine, until today, when I was running it on my Windows machine.
Windows uses the \ character to separate directories, Python knows this and it helpfully provides a set of functions that deal with it automatically. I just didn’t use them:
if os.path.split(sPath)[0] != '':
...
month = [os.path.split(sPath)[1] for x in range(len(days))]
os.path
knows all about directory separators.