A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://mail.python.org/pipermail/python-list/2003-September/208363.html below:

Forcing getopt to process a specific option first??

Forcing getopt to process a specific option first??Skip Montanaro skip at pobox.com
Thu Sep 18 13:07:11 EDT 2003
    Dan> Is there any way to force getopt to process one option first??  I'd
    Dan> like to be able to pass in the name of a configuration file for my
    Dan> application, then have the remaining command-line parameters
    Dan> over-ride the configuration file if they are present.

Not that I'm aware of.  If the order of the remaining options doesn't
matter, you might try splitting the argument list before the option which
introduces your config file.  For example, given this set of command line
args:

    -f bar -o baz -c configfile -o bump -h

locate the '-c' and use it to split the argument list, then swap the two
pieces:

    >>> s = "-f bar -o baz -c configfile -o bump -h"
    >>> args = s.split()
    >>> args
    ['-f', 'bar', '-o', 'baz', '-c', 'configfile', '-o', 'bump', '-h']
    >>> index = args.index('-c')
    >>> index
    4
    >>> args[:index], args[index:]
    (['-f', 'bar', '-o', 'baz'], ['-c', 'configfile', '-o', 'bump', '-h'])
    >>> args = args[index:] + args[:index]
    >>> args
    ['-c', 'configfile', '-o', 'bump', '-h', '-f', 'bar', '-o', 'baz']

Now pass that list to getopt.getopt().

If the order of the remaining arguments does matter, you just split the
argument list into three pieces, the part before rearranging:

    >>> args[:index], args[index:index+2], args[index+2:]
    (['-f', 'bar', '-o', 'baz'], ['-c', 'configfile'], ['-o', 'bump', '-h'])
    >>> args = args[index:index+2] + args[:index] + args[index+2:]
    >>> args
    ['-c', 'configfile', '-f', 'bar', '-o', 'baz', '-o', 'bump', '-h']

Skip



More information about the Python-list mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4