devseniorlabpython / devseniorlabpython/hardware-shop

Añadir Funcionalidad para Exportar Inventario a Formato CSV

Aberta
#6 0 comentários 0 reações 1 responsável Atribuída a @carres1995 Ver no GitHub
enhancement good first issue
Linguagem predominante
Python
Estrelas
0
Forks
4
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

Además de exportar a `.txt`, es muy útil poder exportar los datos a formato CSV (Valores Separados por Comas), ya que es un estándar universal que puede ser abierto por hojas de cálculo como Excel, Google Sheets o LibreOffice Calc.

**Tu Misión:**

Añadir una nueva opción al menú para exportar el inventario completo a un archivo `.csv`.

**Tareas Específicas:**

1. **Añadir la Opción al Menú (`main.py`):**
* Abre `main.py` y añade una nueva opción al menú en la función `mostrar_menu()`. Por ejemplo: "Exportar inventario a CSV". Recuerda ajustar la numeración de las opciones siguientes.

2. **Implementar la Lógica de Exportación (`main.py`):**
* Añade un nuevo `elif` en la función `main()` para manejar la nueva opción.
* Dentro de este bloque, pide al usuario el nombre que desea para el archivo (sin la extensión).
* Importa el módulo `csv` al principio de `main.py`: `import csv`.
* Obtén todos los productos usando `repo.get_all()`.
* Usa un bloque `with open(...)` para crear y abrir el archivo en modo escritura (`'w'`). Asegúrate de que el nombre del archivo termine en `.csv` y establece `newline=''` para un manejo correcto de las líneas en Windows.
* Crea un `csv.writer`.
* **Escribir Encabezados:** Escribe la primera fila del archivo con los nombres de las columnas (ej. `['ID', 'Nombre', 'Precio', 'Stock']`) usando `writer.writerow()`.
* **Escribir Datos:** Itera sobre tu lista de productos. Por cada diccionario de producto, extrae los valores en el orden correcto y escríbelos en el archivo usando `writer.writerow()`.

**Ejemplo de código para la escritura del CSV:**
```python
import csv

# ... dentro del elif ...
productos = repo.get_all()
if productos:
# Extraer encabezados del primer producto
encabezados = list(productos[0].keys())

with open(f"{nombre_archivo}.csv", 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(encabezados) # Escribir la fila de encabezados

# Escribir los datos de cada producto
for producto in productos:
writer.writerow(list(producto.values()))

print(f"✅ Inventario exportado a {nombre_archivo}.csv")

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.