Unixコマンド in Python #1 cat

Pythonになれるために不定期にUnixコマンドをPythonで書いてみることにした。
まずはcat。

#!/usr/bin/env python
import sys
import fileinput

def usage():
    sys.stderr.write("Usage: %s [-n] [file ...]\n" % sys.argv[0])

def raw_print(args):
    for line in fileinput.input(args):
        print line,

def cook_print(args):
    for line in fileinput.input(args):
        print "%6d\t%s" % (fileinput.lineno(), line),

def main():
    import getopt

    try:
        opts, args = getopt.getopt(sys.argv[1:], 'n')
    except getopt.GetoptError:
        usage()
        sys.exit(1)

    nflag = False
    for o, a in opts:
        if o == '-n': nflag = True

    try:
        if nflag:
            cook_print(args)
        else:
            raw_print(args)
    except IOError, (errno, strerror):
        sys.stderr.write("%s: %s %s\n" %
                         (sys.argv[0], fileinput.filename(), strerror))

if __name__ == '__main__':
    main()