[Tutor] optional sys.argv parsing

Andre Walker-Loud walksloud at gmail.com
Thu Oct 29 22:30:53 CET 2009


Hi All,

I have a simple question.  I am writing a little program that will  
make some plots of data files.  I want to have optional args to pass,  
for example to specify the plot ranges.  I have never written a script/ 
code that takes optional args (but I have used plenty) - so I am  
feeling a little sluggish writing a good sys.argv reader.  I have the  
following few lines I made, but I am wondering if any of you have  
suggestions for how to make this better (ie more slick, more readable,  
more general etc)


Thanks,

Andre


 >>>
import sys

if len(sys.argv) < 2:
     print('no data file specified')
     sys.exit(-1)
elif len(sys.argv) > 2:
     if sys.argv.count('-x') > 1:
         print('error: multiple instances of "-x xmin xmax"')
         sys.exit(-1)
     elif sys.argv.count('-x') == 1:
         xrange = sys.argv.index('-x')
     if sys.argv.count('-y') > 1:
         print('error: multiple instances of "-y ymin ymax"')
         sys.exit(-1)
     elif sys.argv.count('-y') == 1:
         yrange = sys.argv.index('-y')
else:
     xrange = 0
     yrange = 0

if xrange != 0:
     xmin = float(sys.argv[xrange+1])
     xmax = float(sys.argv[xrange+2])
else:
     xmin = "x-min determined from data file"
     xmax = "x-max determined from data file"

if yrange != 0:
     ymin = float(sys.argv[yrange+1])
     ymax = float(sys.argv[yrange+2])
else:
     ymin = "y-min determined from data file"
     ymax = "y-max determined from data file"



More information about the Tutor mailing list