On Friday, August 12, 2016 at 1:28:04 AM UTC+12, Cecil Westerhof wrote: > As I understood it getopt is the way to get the parameters for your > script. But at the moment it looks a bit like overkill, my script does > not have much parameters as parameter_error shows:
That’s fine. But your command-line needs are so simple, I wouldn’t bother with the “--” business either. Just take the interval as a single argument. Here’s how I would do it: if len(sys.argv) == 2 : periodspec = sys.argv[1] elif len(sys.argv) == 1 : periodspec = "all" else : raise RuntimeError("usage:\n {} [period]" % sys.argv[0]) #end if today = time.strftime("%Y-%m-%d") # or whatever # original did “select current_date” from SQLite if re.fullmatch(r"^\d+$", periodspec) != None : period = int(periodspec) else : period = \ { "today" : lambda : today + "%", "this-month" : lambda : today[0:8] + "%", "this-year" : lambda : today[0:5] + "%", "all" : lambda : "%", }.get(periodspec, lambda : None)() if period == None : raise RuntimeError("{}: unrecognized period spec “%s”" % periodspec) #end if #end if sys.stderr.write("period = %s\n" % repr(period)) # debug # ... # vmstat_params = (period, slice_length) # ... etc So you would call that like ./demo 5 ./demo today ./demo etc. And as a bonus, it will accept any integer interval, not just your original limited set. And you see how I wrote the table of symbolic intervals? That makes it easy to add new entries. -- https://mail.python.org/mailman/listinfo/python-list