#!/usr/local/bin/python import os, os.path import whrandom import PListReader import xml.sax # choose a random .plist file dir = os.path.expanduser("~/Library/Preferences/") allPlistFilenames = filter(lambda x: os.path.splitext(x)[1].lower() == '.plist', os.listdir(dir)) plistFilename = whrandom.whrandom().choice(allPlistFilenames) print plistFilename filepath = os.path.join(dir, plistFilename) # parse the file reader = PListReader.PListReader() parser = xml.sax.make_parser() for key, value in reader.getRecommendedFeatures().items(): parser.setFeature(key, value) parser.setContentHandler(reader) parser.parse(open(filepath, 'r')) # print the Python data structure print repr(reader.getResult()) # print the original file print open(filepath, 'r').read()