Python Command Line Arguments
# Python2.x Python Command-Line Arguments
[ Python Basic Syntax](#)
Python provides the **getopt** module to handle command-line arguments.
$ python test.py arg1 arg2 arg3
Python can also use **sys**'s **sys.argv** to get command-line arguments:
* sys.argv is the list of command-line arguments.
* len(sys.argv) is the number of command-line arguments.
**Note:** sys.argv represents the script name.
### Example
The code for the test.py file is as follows:
## Example
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
print'Number of arguments:',len(sys.argv),'arguments.'
print'Argument list:',str(sys.argv)
Executing the above code, the output result is:
$ python test.py arg1 arg2 arg3 Number of arguments: 4 arguments. Argument list: ['test.py', 'arg1', 'arg2', 'arg3']
* * *
## getopt Module
The getopt module is specifically designed for handling command-line arguments. It is used to obtain command-line options and arguments, i.e., sys.argv. Command-line options make the program's arguments more flexible. It supports short option mode - and long option mode --.
This module provides two methods and one exception to parse command-line arguments.
### getopt.getopt Method
The getopt.getopt method is used to parse the command-line argument list. The syntax format is as follows:
getopt.getopt(args, options[, long_options])
Method parameter description:
* **args**: The command-line argument list to be parsed.
* **options**: Defined in string format. The colon : after **options** indicates that if this option is set, it must have an additional parameter; otherwise, no parameter is attached.
* **long_options**: Defined in list format. The equals sign = after **long_options** indicates that this option must have an additional parameter. Without the equals sign means the option does not take an additional parameter.
* The return value of this method consists of two elements: The first is a list of **(option, value)** tuples. The second is the argument list containing those arguments that do not start with **-** or **--**.
Another method is getopt.gnu_getopt, which will not be detailed here.
* * *
## Exception getopt.GetoptError
This exception is raised when the argument list is not found, or the required parameter for an option is empty.
The exception argument is a string indicating the cause of the error. The attributes **msg** and **opt** provide error information related to the option.
### Example
Assume we create a script that can pass two filenames to the script file via the command line, and we use another option to view the script's usage. The script usage is as follows:
usage: test.py -i -o
The code for the test.py file is as follows:
## Example
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys,getopt
def main(argv):
inputfile =''
outputfile =''
try:
opts, args =getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
print'test.py -i -o '
sys.exit(2)
for opt, arg in opts:
if opt =='-h':
print'test.py -i -o '
sys.exit()
elif opt in("-i","--ifile"):
inputfile = arg
elif opt in("-o","--ofile"):
outputfile = arg
print'Input file is:', inputfile
print'Output file is:', outputfile
if __name__ =="__main__":
main(sys.argv[1:])
Executing the above code, the output result is:
$ python test.py -h usage: test.py -i -o $ python test.py -i inputfile -o outputfile Input file is: inputfile Output file is: outputfile
[ Python Basic Syntax](#)
YouTip