Ejemplos prácticos
Escenarios reales de valores predeterminados con Argparse
graph TD
A[Practical Argparse Examples] --> B[Configuration Management]
A --> C[Network Tools]
A --> D[Data Processing]
A --> E[System Administration]
Ejemplo 1: Script de configuración de servidor web
import argparse
def start_server(host, port, debug):
print(f"Starting server on {host}:{port}")
print(f"Debug mode: {debug}")
def main():
parser = argparse.ArgumentParser(description='Simple Web Server')
parser.add_argument('--host',
default='127.0.0.1',
help='Server host address')
parser.add_argument('--port',
type=int,
default=8000,
help='Server port number')
parser.add_argument('--debug',
action='store_true',
default=False,
help='Enable debug mode')
args = parser.parse_args()
start_server(args.host, args.port, args.debug)
if __name__ == '__main__':
main()
Ejemplo 2: Herramienta de procesamiento de datos
import argparse
import csv
import sys
def process_data(input_file, output_file, delimiter):
try:
with open(input_file, 'r') as infile, \
open(output_file, 'w') as outfile:
reader = csv.reader(infile, delimiter=delimiter)
writer = csv.writer(outfile)
for row in reader:
writer.writerow(row)
except IOError as e:
print(f"Error processing files: {e}")
sys.exit(1)
def main():
parser = argparse.ArgumentParser(description='CSV Data Processor')
parser.add_argument('input',
help='Input CSV file')
parser.add_argument('--output',
default=None,
help='Output CSV file')
parser.add_argument('--delimiter',
default=',',
help='CSV delimiter')
args = parser.parse_args()
## Auto-generate output filename if not provided
output = args.output or args.input.replace('.csv', '_processed.csv')
process_data(args.input, output, args.delimiter)
if __name__ == '__main__':
main()
Ejemplo 3: Script de copia de seguridad del sistema
import argparse
import os
from datetime import datetime
def create_backup(source, destination, compress):
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
backup_name = f"backup_{timestamp}"
if compress:
os.system(f"tar -czvf {destination}/{backup_name}.tar.gz {source}")
else:
os.system(f"cp -r {source} {destination}/{backup_name}")
def main():
parser = argparse.ArgumentParser(description='System Backup Tool')
parser.add_argument('source',
help='Source directory to backup')
parser.add_argument('--destination',
default='/backup',
help='Backup destination directory')
parser.add_argument('--compress',
action='store_true',
default=False,
help='Compress backup')
args = parser.parse_args()
create_backup(args.source, args.destination, args.compress)
if __name__ == '__main__':
main()
Comparación de ejemplos prácticos
Escenario |
Estrategia de valor predeterminado |
Beneficios clave |
Servidor web |
Valores predeterminados de host/puerto |
Configuración fácil |
Procesamiento de datos |
Nombre automático de salida |
Flujo de trabajo flexible |
Copia de seguridad del sistema |
Ubicación estándar de copia de seguridad |
Proceso de copia de seguridad consistente |
Mejores prácticas para valores predeterminados
- Proporcione valores predeterminados razonables
- Permita una fácil personalización
- Maneje casos extremos
- Implemente mensajes de ayuda claros
En LabEx, enfatizamos la creación de interfaces de línea de comandos flexibles y amigables con el usuario a través de una gestión inteligente de valores predeterminados.