On Thursday, April 13, 2017 at 12:38:48 PM UTC+10, MRAB wrote: > On 2017-04-13 02:59, ian.steg...@gmail.com wrote: > > I have this code which I got from > > https://www.tutorialspoint.com/python/python_command_line_arguments.htm The > > example works fine but when I modify it to what I need, it only half works. > > The problem is the try/except. If you don't specify an input/output, they > > are blank at the end but it shouldn't be. > > > > > > import getopt > > import sys > > > > def main(argv): > > inputfile = '' > > outputfile = '' > > try: > > opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="]) > > except getopt.GetoptError: > > inputfile = 'Input' > > outputfile = 'Output' > > if inputfile == '': > > for opt, arg in opts: > > if opt == '-h': > > print ('Usage: Encrypt.py -i <input file> -o <output file>') > > sys.exit() > > elif opt in ("-i", "--ifile"): > > inputfile = arg > > elif opt in ("-o", "--ofile"): > > outputfile = arg > > else: > > '' > > > > print 'In: ' + inputfile > > print 'Out: ' + outputfile > > > > if __name__ == "__main__": > > main(sys.argv[1:]) > > > You'll get the GetoptError exception if an option that requires an > argument doesn't have one. That's not the same as omitting the option > entirely. > > For example: > > # No -i option. > foo > > # Option -i present but without its required argument. > foo -i
WOW. Thanks for that. -- https://mail.python.org/mailman/listinfo/python-list