Mercurial > hg > config
view python/walk.py @ 911:6fbbe5f0bc6b
add silvermirror/unison alternative
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sun, 14 Apr 2024 15:00:41 -0700 |
parents | 0afeb265da7f |
children |
line wrap: on
line source
#!/usr/bin/env python """ illustration of walking a directory structure """ # imports import argparse import os import sys def ensure_dir(path): """ensures `path` is a directory""" return os.path.isdir(path) def all_files(directory): filenames = [] for dirpath, dirnames, files in os.walk('/home/jhammel/music'): filenames.extend([os.path.join(dirpath, f) for f in files]) return sorted(filenames) def main(args=sys.argv[1:]): """CLI""" # parse command line # sanity if not args: print "Usage: %s directory [directory] [...]" % os.path.basename(sys.argv[0]) # process command line for arg in args: if os.path.isdir(arg): for i in all_files(arg): print i elif os.path.isfile(arg): print os.path.abspath(arg) else: sys.stderr.write("'%s' not a file or directory\n" % arg) if __name__ == '__main__': main()