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
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to