command line args
Tim Daneliuk
tundra at tundraware.com
Mon Mar 14 16:13:28 EST 2005
joe at gmail.com 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 tundra at tundraware.com
PGP Key: http://www.tundraware.com/PGP/
More information about the Python-list
mailing list