optparse und parameter ignorieren
Verfasst: Dienstag 23. Mai 2006, 11:26
Hallo!
Ich benutze optparse, um einem script bestimmte Parameter zu übergeben.
Dazu habe ich mir einige Kommandos reserviert (Bsp.: -a -b -c).
Wenn ich das script jetzt mit dem Kommando -z aufrufe wird das script mit einem Fehler beendet.
Ich möchte aber alle anderen Kommandos die ich nicht definiert habe einfach ignorieren.
Was gibt es da für Möglichkeiten?
CODE:
import sys
import time
import getopt
import string
import os
import types
import optparse
VERSION = "0.1"
def getCANopt (argv,net=0,node=1,baud=0):
print argv
print len(argv)
usage = "usage: %prog [options] arg"
#usage=="%prog [-n] [-b] [-o]", version="%prog 1.0"
parser = optparse.OptionParser(usage, version="%prog 1.0")
parser.add_option("-n", "--net", dest="net",
help="net number", default=0, type="int")
parser.add_option("-b", "--baud", dest="baud",
help="baudrate", default=0, type="int")
parser.add_option("-m", "--module", dest="node",
help="node", default=1, type="int")
parser.add_option("-q", "--quiet",
action="store_false", dest="verbose", default=True,
help="don't print status messages to stdout")
(options, args) = parser.parse_args()
#print options
#print args
#if len(args) < 2:
# parser.error("incorrect number of arguments")
if options.verbose:
print "Baudrate: %d" % options.baud
print "Net : %d" % options.net
print "Node : %d" % options.node
return options.net,options.node,options.baud
#------------------------------------------------------------------------------
# main program
#------------------------------------------------------------------------------
def main():
print "getCANopt"
net,node,baud=getCANopt(sys.argv)
print net
print node
print baud
print "getCANopt done"
print
sys.exit(0)
if __name__ == '__main__':
main()
Gruß
Büxy
Ich benutze optparse, um einem script bestimmte Parameter zu übergeben.
Dazu habe ich mir einige Kommandos reserviert (Bsp.: -a -b -c).
Wenn ich das script jetzt mit dem Kommando -z aufrufe wird das script mit einem Fehler beendet.
Ich möchte aber alle anderen Kommandos die ich nicht definiert habe einfach ignorieren.
Was gibt es da für Möglichkeiten?
CODE:
import sys
import time
import getopt
import string
import os
import types
import optparse
VERSION = "0.1"
def getCANopt (argv,net=0,node=1,baud=0):
print argv
print len(argv)
usage = "usage: %prog [options] arg"
#usage=="%prog [-n] [-b] [-o]", version="%prog 1.0"
parser = optparse.OptionParser(usage, version="%prog 1.0")
parser.add_option("-n", "--net", dest="net",
help="net number", default=0, type="int")
parser.add_option("-b", "--baud", dest="baud",
help="baudrate", default=0, type="int")
parser.add_option("-m", "--module", dest="node",
help="node", default=1, type="int")
parser.add_option("-q", "--quiet",
action="store_false", dest="verbose", default=True,
help="don't print status messages to stdout")
(options, args) = parser.parse_args()
#print options
#print args
#if len(args) < 2:
# parser.error("incorrect number of arguments")
if options.verbose:
print "Baudrate: %d" % options.baud
print "Net : %d" % options.net
print "Node : %d" % options.node
return options.net,options.node,options.baud
#------------------------------------------------------------------------------
# main program
#------------------------------------------------------------------------------
def main():
print "getCANopt"
net,node,baud=getCANopt(sys.argv)
print net
print node
print baud
print "getCANopt done"
sys.exit(0)
if __name__ == '__main__':
main()
Gruß
Büxy