For collision detection, tomtetlaw had a similar question, so I'll give you the same answer I gave him. This is for simplistic levels:
Why not try making a black and white image for your level, where white is free space, and black is blocked space (or vice-versa)? Then you can load this image and read the colour values of it using the Python Imaging Library (PIL), and save this data into a list. Or even better, save it into a Numpy array which is faster as far as I know.
Then, when you call the function to move the player, take the coordinates that the player would be at if you allowed the move. Compare these coordinates to the corresponding spot in your black and white map list, and if it has white space, allow the player to move there. If it's black, then end the function without moving the player. You'd also need to take into account the width and/or height of the player, and check that whole area on your collision map, so that you ensure the whole player would be moving into free/available space.
Obviously this isn't good for loading huge levels at a time, but it's ok for simple platformers. If it's for a larger map, you'll want to come up with some sort of optimized loading system for keeping the memory usage down by only loading applicable map segments at a time.
It's also even better if your game can be split into tiles or a grid, of spaces... say 15 x 15 pixels or something. Then your list will maybe be something 30 rows by 30 rows, instead of containing a value for every single pixel. And finally, if you are using a JPG image for the B&W collision map, then you can save it in Greyscale, instead of RGB. That way, each pixel would contain a single value (shade - 0 to 255), instead of a full tuple of RGB integer values. This should also reduce memory usage quite a bit.
There are probably much better ways of doing this, but this seems like a suitable system to me for small games, tile- or grid-based games, or if you can make a really-well optimized version of this idea.
Hope that gave you a sort of abstract idea :P
EDIT:
If you want to get really advanced, you could have it only check for collisions on player pixels that aren't transparent. This would be for cases where your player is, say a circle, but its bounding box is still square.