Python Command Line Arguments
Handle command line arguments in Python scripts.
Build command-line tools.
sys.argv
```python import sys
script.py print(f"Script name: {sys.argv[0]}") print(f"Arguments: {sys.argv[1:]}")
Run: python script.py arg1 arg2 # Output: # Script name: script.py # Arguments: ['arg1', 'arg2'] ```
argparse Module
```python import argparse
parser = argparse.ArgumentParser(description='Process some data')
parser.add_argument('name', help='Your name') parser.add_argument('--age', type=int, help='Your age') parser.add_argument('--city', default='Austin', help='Your city')
args = parser.parse_args()
print(f"Name: {args.name}") print(f"Age: {args.age}") print(f"City: {args.city}")
Run: python script.py Tom --age 25 --city Miami ```
Optional Arguments
```python import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-v', '--verbose', action='store_true', help='Enable verbose output') parser.add_argument('-o', '--output', help='Output file')
args = parser.parse_args()
if args.verbose: print("Verbose mode enabled")
if args.output: print(f"Output: {args.output}")
Run: python script.py -v -o results.txt ```
Choices
```python import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--format', choices=['json', 'xml', 'csv'], default='json', help='Output format')
args = parser.parse_args()
print(f"Format: {args.format}")
Run: python script.py --format json ```
File Arguments
```python import argparse
parser = argparse.ArgumentParser()
parser.add_argument('input_file', type=argparse.FileType('r'), help='Input file') parser.add_argument('output_file', type=argparse.FileType('w'), help='Output file')
args = parser.parse_args()
content = args.input_file.read() args.output_file.write(content.upper())
args.input_file.close() args.output_file.close()
Run: python script.py input.txt output.txt ```
Remember
- Use argparse for complex CLIs - Provide help messages - Set default values