devseniorlabpython / devseniorlabpython/hardware-shop

Añadir Funcionalidad para Exportar Inventario a Formato CSV

Đang mở
#6 0 bình luận 0 reaction 1 người được giao Được giao cho @carres1995 Xem trên GitHub
enhancement good first issue
Ngôn ngữ chính
Python
Star
0
Fork
4
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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")

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.