[EMAIL PROTECTED] wrote:

Hello,

I have the following commands:
testb -s <size>
testb -s <size> -o <input file>
testb -s <size> -o <codes>

How do i split the commands so that all three are valid. And how do i
check for missing arguments?


Thanks,
-Joe


Look into the getopt module. It vastly simplifies parsing command line arguments. For example, here is how I use it for handling the passing of a configuration file, requesting help, or printing the program version. This bit of code also will look for an environment variable named the same as the program itself for further args:


#----------------------------------------------------------# # Program Entry Point # #----------------------------------------------------------#

import getopt
import sys

PROGNAME="MyNiftyProgram"
RCSID="$Id$"              # Will be filled in by RCS checkin.out
CFGFILE="Default.config"  # Default configuration file

def Usage():
    print "Information about proper program command line use."


# Command line processing - Process any options set in the # environment first, and then those given on the command line

OPTIONS = sys.argv[1:]
envopt = os.getenv(PROGNAME.upper())
if envopt:
    OPTIONS = envopt.split() + OPTIONS

try:
    opts, args = getopt.getopt(OPTIONS, '-f:hv')
except getopt.GetoptError:
    Usage()
    sys.exit(1)

for opt, val in opts:
    if opt == "-f":
        CFGFILE=val
    if opt == "-h":
        Usage()
        sys.exit(0)
    if opt == "-v":
        print RCSID
        sys.exit(0)

# Rest of program goes here ....

--
----------------------------------------------------------------------------
Tim Daneliuk     [EMAIL PROTECTED]
PGP Key:         http://www.tundraware.com/PGP/
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to