Every once in a while I wish I had an ASCII ruler so I could see how many columns wide some line of text was. So:
#!/usr/bin/env python """Computes an ASCII ruler up to the specified width. On the command-line: use -a or --ansi to specify ANSI escape s """ import sys, getopt __author__ = "Kragen Sitaker <[EMAIL PROTECTED]>" __version__ = "2" def ruler(width, ansi=0): """Return an ASCII ruler for counting columns.""" rv = '' for i in range(1, width+1): if i % 10 != 0: rv = rv + str(i % 10) else: digit = str((i/10)%10) # red foreground 33, bold 5, reset to default 0 if ansi: rv = rv + "\033[31;5m" + digit + "\033[0m" else: rv = rv + digit return rv + "\n" def main(argv): """Command-line interface.""" usagemsg = "%s: usage: %s [-a|--ansi] [width]\n" % (argv[0], argv[0]) try: opts, args = getopt.getopt(argv[1:], "ahv", ["ansi", "help", "version"]) except getopt.GetoptError, v: sys.stderr.write(str(v) + "\n") sys.stderr.write(usagemsg) sys.exit(-1) optnames = [ opt for (opt, arg) in opts ] if "--version" in optnames or "-v" in optnames: print "ruler version " + __version__ elif "--help" in optnames or "-h" in optnames or len(args) > 1: print usagemsg, else: if len(args): width = int(args[0]) else: width = 79 print ruler(width, "-a" in optnames or "--ansi" in optnames), if __name__ == "__main__": main(sys.argv)