elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  pasar datos de un archivo csv a otro con python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: pasar datos de un archivo csv a otro con python  (Leído 4,260 veces)
colcrt

Desconectado Desconectado

Mensajes: 87


Ver Perfil
pasar datos de un archivo csv a otro con python
« en: 4 Enero 2021, 22:25 pm »

hola, verán tengo un archivo con datos de partidos de diferentes ligas y lo que quiero es capturar los datos de una sola liga en un archivo csv diferente, he estado intentando pero la documentación de python en relacion al manejo de archivos es muy limitada o insuficiente, si alguno muy amable me pudiera ayudar


En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.159



Ver Perfil
Re: pasar datos de un archivo csv a otro con python
« Respuesta #1 en: 5 Enero 2021, 23:16 pm »

Se me ocurre abrir el .csv como Objeto donde cada línea sería un Diccionario e ir iterando línea a línea creando/abriendo un archivo en modo Append (agregar al final) con el nombre de la Liga para luego agregar en él los Campos del Diccionario/Línea actual

partidos.csv
Citar
columna1,columna2,columna3,columna4,columna5,liga
dato1,dato2,dato3,dato4,dato5,liga1
dato1,dato2,dato3,dato4,dato5,liga1
dato1,dato2,dato3,dato4,dato5,liga1
dato1,dato2,dato3,dato4,dato5,liga2
dato1,dato2,dato3,dato4,dato5,liga3
dato1,dato2,dato3,dato4,dato5,liga2
dato1,dato2,dato3,dato4,dato5,liga1

Código
  1. import csv, os
  2.  
  3. with open('partidos.csv') as f :
  4.  df = csv.DictReader(f)
  5.  for row in df :
  6.    fieldnames = list(row)
  7.    exists = os.path.exists(row['liga'] + '.csv')
  8.    with open(row['liga'] + '.csv', 'a', newline='') as l :
  9.      writer = csv.DictWriter(l, fieldnames=fieldnames)
  10.      if not exists :
  11.        writer.writeheader()
  12.      writer.writerow(row)

1. Importo csv y os
3. Abro el archivo partidos.csv bajo el nombre de "f" en modo solo teto de lectura (por defecto)
4. Creo el Objeto DictReader a partir del archivo leído
5. Itero fila a fila (cada fila es un Diccionario) el Objeto DictReader
6. Creo un Diccionario con la primera línea del archivo csv que se supone es la cabecera de títulos (fielnames)
7. Creo una variable Boolean para comprobar si existe o no el archivo con el nombre de la Liga
8. Creo o Abro un archivo csv con el nombre igual a la Liga
9. Creo mi Objeto DictWriter para poder escribir líneas (cada línea es un Diccionario) en el archivo
10. y 11. Si el archivo no existía le agrego los títulos de columna (fieldnames)
12. Inserto la línea con los datos del Diccionario Fila

Aunque siempre se pueden solo extraer las Columnas (fielnames) que uno desee y no todas ...


En línea

colcrt

Desconectado Desconectado

Mensajes: 87


Ver Perfil
Re: pasar datos de un archivo csv a otro con python
« Respuesta #2 en: 27 Enero 2021, 05:56 am »

gracias bro, me ha servido mucho  ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines