code: def do_walk(data_path):
      
      data_files = {}
      def cond(File, prefix):
          """
          Return True for useful files
          Return False for non-useful files
          """
          file_path = path.join(prefix, 'data_files', File)
          return (not File.startswith('!') and
                  not File.endswith('~') and
                  not File.endswith('#') and
                  not File.endswith('.pyc') and
                  not File.startswith('.') and
                  path.exists(path.join(prefix, File)))
  
      for (dir_path, dirs, files) in os.walk(data_path):
          data_files[dir_path] = [f for f in files if cond(f, dir_path)]
          if not dirs:
              continue
          else:
              for Dir in dirs:
                  do_walk(os.path.join(dir_path, Dir))
      return data_files
docs: Walk through data_files and list all in dict format