Forcing getopt to process a specific option first??
Jeff Epler
jepler at unpythonic.net
Thu Sep 18 20:32:14 EDT 2003
More information about the Python-list mailing list
Thu Sep 18 20:32:14 EDT 2003
- Previous message (by thread): problem with user confirmation
- Next message (by thread): Forcing getopt to process a specific option first??
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Care for another solution?
I'd simply do two passes over the argument list. This has an advantage
over both the other alternatives proposed. First, it works if the user
writes something like "-bccf" (equivalent to the arguments ["-b", "-c", "cf"]),
and second it works with repeated options like [-a", "x", "-a", "y"].
This doesn't work if something in the configuration file could affect
the available set of commandline switches. There may be some other
shortcoming I haven't considered yet, too.
Jeff
########################################################################
# Program
import getopt
def main(argv):
args, rest = getopt.getopt(argv, "c:a:b")
# First pass, parse any -c option
for k, v in args:
if k == "-c":
print "Using config file", v
# Next, parse the other options
for k, v in args:
if k == "-c": continue
print "Processing switch", k, v
print "Remaining positional arguments", rest
argv = "-a x -bccf -a y ...".split()
main(argv)
########################################################################
# Output
Using config file cf
Processing switch -a x
Processing switch -b
Processing switch -a y
Remaining positional arguments ['...']
- Previous message (by thread): problem with user confirmation
- Next message (by thread): Forcing getopt to process a specific option first??
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list