Is there a more Pythonic approach to this?
Question: This is my first python script, be ye warned.

I pieced this together from Dive Into Python, and it works great. However
since it is my first Python script I would appreciate any tips on how it can
be made better or approaches that may better embrace the Python way of
programming.

    
    
    import os
    import shutil
    
    def getSourceDirectory():
        """Get the starting source path of folders/files to backup"""
        return "/Users/robert/Music/iTunes/iTunes Media/"
    
    def getDestinationDirectory():
        """Get the starting destination path for backup"""
        return "/Users/robert/Desktop/Backup/"
    
    def walkDirectory(source, destination):
        """Walk the path and iterate directories and files"""
    
        sourceList = [os.path.normcase(f)
            for f in os.listdir(source)]
    
        destinationList = [os.path.normcase(f)
            for f in os.listdir(destination)]
    
        for f in sourceList:
            sourceItem = os.path.join(source, f)
            destinationItem = os.path.join(destination, f)  
    
            if os.path.isfile(sourceItem):
                """ignore system files"""
                if f.startswith("."):
                    continue
    
                if not f in destinationList:
                    "Copying file: " + f
                    shutil.copyfile(sourceItem, destinationItem)
    
            elif os.path.isdir(sourceItem):
                if not f in destinationList:
                    print "Creating dir: " + f
                    os.makedirs(destinationItem)
    
                walkDirectory(sourceItem, destinationItem)
    
    """Make sure starting destination path exists"""
    source = getSourceDirectory()
    destination = getDestinationDirectory()
    
    if not os.path.exists(destination):
        os.makedirs(destination)
    
    walkDirectory(source, destination)
    


Answer: As others mentioned, you probably want to use `walk` from the built-in `os`
module. Also, consider using [PEP 8 compatible
style](http://www.python.org/dev/peps/pep-0008/) (no camel-case but
`this_stye_of_function_naming()`). Wrapping directly executable code (i.e. no
library/module) into a `if __name__ == '__main__': ...` block is also a good
practice.

