LoD MoD wrote:
I am having trouble extending my option parsing.
Any help is appreciated:

import sys
import getopt
import time

def tail(file):
    while 1:
        where = file.tell()
        line = file.readline()
        if not line:
            time.sleep(1)
            file.seek(where)
        else:
            print line, # already has newline

def main():

    # parse command line options
    try:
opts, args = getopt.getopt(sys.argv[1:], "hf:", ["help", "filename="])
    except getopt.error, msg:
        print msg
        print "for help use --help"
        sys.exit(2)
    # process options
    for o, a in opts:
        if o in ("-h", "--help"):
            print __doc__
            sys.exit(0)
        if o in ("-f", "--filename"):
            print "Parsing F argument"
            file = open(filename, 'r')
            print file

# process arguments
    for arg in args:
        process(arg) # process() is defined elsewhere

if __name__ == "__main__":
    main()

Yields this error:

localhost:src gsery$ python logTail.py  /var/log/system.log
Traceback (most recent call last):
  File "logTail.py", line 52, in <module>
    main()
  File "logTail.py", line 49, in main
    process(arg) # process() is defined elsewhere
NameError: global name 'process' is not defined

The trackback tells you what's wrong: you haven't defined 'process'. The
comment says it's defined elsewhere, but neither I nor Python can see
it! :-)
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to