devseniorlabpython / devseniorlabpython/hardware-shop
Añadir Funcionalidad para Exportar Inventario a Formato CSV
- 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á.