[EMAIL PROTECTED] wrote: > Hi there. I just wondered whether anyone could recommend the correct > way I should be passing command line parameters into my program. I am > currently using the following code: > > def main(argv = None): > > > file1= "directory1" > file2 = "directory2" > > > if argv is None: > args = sys.argv[1:] > > if len(args) == 0: > Initialise.init(0) > Process.processCon(file1, 0) > Output.print() > > for i in range(len(args)): > if args[i] == "-no": > Initialise.init(0) > Process.processCon(file2,1) > Output.print() > > if args[i] == "-not": > Initialise.init(1) > Process1.process(stepStore, firstSteps) > Output.print1() > > > > if __name__ == "__main__": > main() > > > Have I used bad syntax here so that a user can either run the program > with commands: > main.py > main.py -no > main.py -not > > If I also wanted an option file to be passed in at the command line > for 'main.py' and 'main.py -no' what would be the best way to go about > this? I have never used Python to pass in arguments at the command > line so any help would be much appreciated.
A solution using argparse (http://argparse.python-hosting.com/): import argparse def main(no=False, nott=False): file1 = "directory1" file2 = "directory2" if nott: print 'Initialise.init(1)' print 'Process1.process(stepStore, firstSteps)' print 'Output.print1()' else: print 'Initialise.init(0)' if no: print 'Process.processCon(file2, 1)' else: print 'Process.processCon(file1, 0)' print 'Output.print()' if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('-no', action='store_true') parser.add_argument('-not', action='store_true', dest='nott') args = parser.parse_args() main(no=args.no, nott=args.nott) Note that I've used print statements since I don't have your Initialize, Process, etc. objects. If I knew what "-no" and "-not" meant better, I could give you a better suggestion, e.g. where you parse the 0 or 1 value for Initialize.init directly from the command line. STeVe -- http://mail.python.org/mailman/listinfo/python-list