Python6 min read

Python Command Line Arguments

Handle command line arguments in Python scripts.

David Miller
December 18, 2025
0.0k0

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

#Python#Advanced#CLI