comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Codigo + Introduccion] Manejo de archivos csv en python

  • 2 Respuestas
  • 7660 Vistas

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado blozzter

  • *
  • Underc0der
  • Mensajes: 106
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • blozzter-blz
« en: Agosto 30, 2011, 11:31:49 pm »
buenas,
me puse a buscar sobre diferentes tipos de ficheros que pudiesen servir para el almacenamiento de datos y que pudieran ser manipulados en python. así fue como llegué al tipo de ficheros csv, el cual me pareció interesante y útil.
vemos un resumen de su definicion (wikipedia) :

Citar
Los ficheros CSV (del inglés comma-separated values) son un tipo de documento en formato abierto sencillo para representar datos en forma de tabla, en las que las columnas se separan por comas  y las filas por saltos de línea.

un ejemplo:

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
987,juan,87345,10 norte 342
876,pedro,43649,8 oriente 342
123,jorge,03342,av. libertad 23
69,vicente,61560,valencia nº183


python trae incorporado un modulo para manejar este tipo de archivos, el modulo csv que se importa como cualquier otro.

algunos apuntes de como manejar el módulo:

para abrir un archivo csv con el permiso correspondiente:

archivo = csv.reader(open("datos_agenda.csv", "rb"))   ==>> abrimos con permiso de solo lectura

archivo = csv.writer(open("datos_agenda.csv", "ab"))   ==>> abrimos con permiso append (agregar al final)

archivo = csv.writer(open("datos_agenda.csv", "wb"))  ==>> abrimos con permiso de escritura, si no existe, lo crea.



escribiendo en un fichero csv:

archivo.writerow([nombre, numero, email])  =>> en donde le pasamos en una lista lo que queremos insertar.


lo que me llamó la atención es que estos archivos no necesitan ser cerrados a diferencia de cuando abrimos un .txt por ejemplo.
para terminar, dejo simple ejemplo de la manipulación de estos archivos.

el ejemplo trata de una agenda (nada nuevo, lo sé, pero sirve para entender el manejo).
he hecho 2 funciones, una que agrega un contacto al archivo datos_agenda.csv y otra función que recorre todo el archivo mostrado los datos de los contactos.

la documentación que he encontrado ha sido escasa, si alguien se interesa podría postear una función que elimine los datos de un contacto pre-almacenado; o que permita modificar la información. así aprendemos todos.


Código: Python
  1. #aprendiendo manejo de archivos csv en Python
  2. #comunidad Underc0de
  3.  
  4. import csv, sys, os
  5.  
  6. def mostrar_contactos():
  7.     archivo = csv.reader(open("datos_agenda.csv", "rb"))
  8.     for index,row in enumerate(archivo):
  9.         print "contacto: " + str(index+1)
  10.         print "-------------------"
  11.         print "nombre: " + row[0] + "  || numero: " + row[1] + "  || email: " + row[2]
  12.         print "\n"
  13.        
  14. def agregar_contacto(nombre, numero, email):
  15.     archivo = csv.writer(open("datos_agenda.csv", "ab"))
  16.     archivo.writerow([nombre, numero, email])
  17.        
  18. def mostrar_menu():
  19.     print "gestion de contactos"
  20.     print "[1] mostrar contactos."
  21.     print "[2] agregar contacto."
  22.     print "[3] salir."
  23.    
  24. salir = False
  25.  
  26. if not os.path.exists('datos_agenda.csv'):
  27.     archivo = csv.writer(open("datos_agenda.csv", "wb"))
  28.    
  29.  
  30. while (salir == False):
  31.     mostrar_menu()
  32.     opcion = input("==> opcion: ")
  33.     if opcion == 1:
  34.         mostrar_contactos()
  35.     elif opcion == 2:
  36.         nombre = raw_input("==> nombre: ")
  37.         numero = raw_input("==> numero: ")
  38.         email = raw_input("==> email: ")
  39.         agregar_contacto(nombre, numero, email)
  40.     elif opcion == 3:
  41.         sys.exit()

« Última modificación: Marzo 23, 2015, 12:13:44 pm por Expermicid »
¡< blozzter >!

Desconectado JaAViEr

  • *
  • Underc0der
  • Mensajes: 163
  • Actividad:
    0%
  • Reputación 0
  • http://codigo.ga
    • Ver Perfil
    • Blog de Programación :: Python
« Respuesta #1 en: Agosto 30, 2011, 11:59:12 pm »
Me laten más las Regexp(import re)
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado pab mac

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #2 en: Abril 01, 2012, 05:43:38 pm »
Hola, mira encontre esto: No tienes permisos para ver links. Registrate o Entra con tu cuenta fijate si te sirve, yo estoy diseñando algo y esto me viene al pelo, asi que lo voy a probar, cuando tenga algo lo posteo asi ven como se maneja, saludos.

 

¿Te gustó el post? COMPARTILO!



Python keylogger - by "bLiNdFiR3"

Iniciado por d33k40

Respuestas: 0
Vistas: 2059
Último mensaje Abril 07, 2010, 03:30:22 am
por d33k40
Python phpmyadmin "BruteForce"

Iniciado por linkgl

Respuestas: 2
Vistas: 2549
Último mensaje Agosto 19, 2011, 12:14:37 pm
por linkgl
Python Trojan - By "bLiNdFiR3"

Iniciado por d33k40

Respuestas: 1
Vistas: 2112
Último mensaje Abril 03, 2010, 11:01:59 pm
por Dharok
[VIDEOTUTORIAL] Aprende a crear programas en Python paso a paso

Iniciado por akame_night_raid

Respuestas: 12
Vistas: 6600
Último mensaje Noviembre 24, 2016, 07:37:14 pm
por zaphiel
[Proyecto] PyDB - "Bases de Datos" fáciles en Python :: JaAViEr | 0x5d

Iniciado por JaAViEr

Respuestas: 2
Vistas: 1369
Último mensaje Julio 24, 2013, 12:14:47 am
por JaAViEr