Python Command Line Arguments

ian.stegner at gmail.com ian.stegner at gmail.com
Wed Apr 12 23:00:34 EDT 2017


On Thursday, April 13, 2017 at 12:38:48 PM UTC+10, MRAB wrote:
> On 2017-04-13 02:59, ian.stegner at 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.


More information about the Python-list mailing list