I tend to agree very much with @loremipsum on this particular mission. It could be made much better. Just sad that the error-handling is not verbose enough.
But none-the-less, good work out on my python skills.