Vous êtes sur la page 1sur 7

Manejo de archivos

ESET Latinoamrica | info@eset-la.com | www.eset-la.com




Contenido
Manejo de archivos ............................................................................................................................................................................. 3
Qu es un archivo? ............................................................................................................................................................................. 3
Escribir en archivos ........................................................................................................................................................................... 3
Leer de archivos ................................................................................................................................................................................ 4
Leyendo la configuracin desde un archivo ..................................................................................................................................... 5
Conectando a la base de datos ............................................................................................................................................................. 6
Conexin a la base de datos ............................................................................................................................................................. 6
Accediendo a recursos web .................................................................................................................................................................. 7
Conclusin ............................................................................................................................................................................................ 7


Introduccin a Python Mdulo IV 3


Introduccin
Saber cmo utilizar archivos es un punto muy importante para cualquier programador. Aprender a manipular archivos de texto,
conexiones a bases de datos, acceso a pginas web nos permite interactuar con otros sistemas, almacenar nuestra informacin
para utilizarla en otro momento y utilizar datos persistentes cuando sea necesario.

Es por ello que en el presente mdulo haremos una introduccin a la escritura y lectura desde archivos en Python. Adems
veremos cmo conectarnos a una base de datos para hacer consultas y utilizar la informacin que en ella existe.
Manejo de archivos

Leer y escribir Archivos, conectarnos a una base de datos para consultar o insertar informacin o saber de qu manera leer
informacin ajena a nuestro cdigo es muy importante para programar. Si en algn momento queremos guardar algn valor,
dato, o informacin para tenerla accesible la prxima vez que ejecutemos nuestro programa, necesitamos saber cmo
almacenarla de forma correcta.

Podemos utilizar los archivos de texto para cargar informacin en nuestro programa, para crear un registro de errores o lo que va
haciendo o incluso como un archivo de configuracin. Al momento de conectarnos a una base de datos, podemos agregar
informacin, consultar por datos o actualizar.

Qu es un archivo?
Un archivo es una secuencia de bytes que se aloja en el disco rgido para almacenar informacin, datos, imgenes incluyendo
tambin archivos ejecutables. Todo lo que se guarda en las computadoras son archivos, y de los formatos ms diferentes que se
puedan imaginar. Pero qu es lo que pasa cuando estamos escribiendo un programa y necesitamos cargar informacin que se
encuentra en el disco, cmo accedemos a esos datos?

Siempre que queramos leer o escribir en un archivo vamos a tener que decirle a nuestro programa dnde est ese recurso y de
qu manera lo tenemos que abrir. Abrir un archivo en Python es mucho ms sencillo de lo que ustedes se imaginan, solo
debemos utilizar la funcin open(), pasarle los parmetros correspondientes a la ruta o nombre del archivo y el modo con el que
lo queremos abrir.

Para ver el detalle de cmo llamar a la funcin open() abran una consola de Python e ingresen help(open), podrn ver cmo
pasar los parmetros a la funcin. En caso de que quieran un poco ms de detalle sobre los modos de apertura de un archivo
pueden ingresar en la misma consola el comando file.__doc__ para que muestre por pantalla todo el detalle de los tres tipos de
apertura de un archivo:

r: Abre el archivo en modo lectura (read) para poder leer su contenido.
w: Abre el archivo en modo escritura (write), para poder escribir en l.
a: Abre el archivo en modo de agregacin (append), para continuar agregando contenido hacia el final del mismo
Adems existe una opcin para abrir los archivos en modo binario (b), y les queda a ustedes como tarea ver qu diferencia tiene
esta opcin con las anteriores.
Escribir en archivos

Cuando desde nuestro programa, queramos escribir un archivo en el disco de la computadora debemos invocar a la funcin
open() y pasarle como parmetro del modo de apertura la opcin de escritura (w). Por ejemplo, podemos crear un archivo que
se llame nmeros.txt y escribir en l los nmeros del 1 al 100:

Introduccin a Python Mdulo IV 4



Imagen 1 - Escribiendo en un archivo de texto
Primero utilizamos la funcin open(), con sus correspondientes parmetros para abrir el archivo, luego mediante un for,
recorremos los nmeros del 1 al 100 y escribimos el nmero en el archivo utilizando la funcin write(). Finalmente, una vez que
salimos del bucle, cerramos el archivo llamando a la funcin close(). Siempre que se abra un archivo, debemos cerrarlo para
evitar perder informacin.

Cmo creen que se podra hacer para modificar el archivo y agregarle los nmeros del 101 al 200?
Leer de archivos
Ahora que ya hablamos acerca de cmo escribir en archivos, tenemos que ir al otro extremo de la cuestin. Cuando guardamos
informacin en el disco de la computadora, es porque en algn momento vamos a intentar acceder a ella. Para hacerlo, tenemos
que saber cmo abrir un archivo para lectura y acceder a su contenido.

Para leer un archivo en Python, debemos abrirlo con el modo de lectura (r) y luego podremos utilizar las funciones read(),
readline() o readlines().

Como se podrn imaginar, existen algunas diferencias entre las tres funciones que enumeramos antes para leer un archivo. La
funcin read() lee, por defecto todo el archivo hasta alcanzar el EOF (End Of File), en caso de que sea necesario se le puede pasar
el tamao de bytes mximo a leer.

La segunda funcin que mencioamos, readline(), lee una linea completa del archivo. A esta funcin se le puede pasar como
parmetro la cantidad de bytes a leer, si es menor a la longuitud de la lenea solo nos traer esos bytes. Finalmente, readlines(),
lee las lineas del archivo y nos devuelve un array con todas las linas. Por ejemplo, el siguiente cdigo lee un archivo de texto
utilizando la funcin readlines() e imprime sus lneas por pantalla, avanzando de una a la vez y eliminando el carcter especial de
nueva lnea\n:


Imagen 2 - Leer desde un archivo de texto
Introduccin a Python Mdulo IV 5


Con estas tres funciones, cualquiera que se ajuste al caso o la necesidad que tengamos podemos ir leyendo el archivo. Si en algn
momento llegamos a necesitar posicionarnos el algn lugar del archivo, podemos utilizar la funcin seek(), averiguen cmo se
utiliza.
Leyendo la configuracin desde un archivo

Adems de las funciones para leer y escribir en archivos, existen algunos mdulos de Python que nos ayudan para determinadas
funciones. Si se llegaran a encontrar con la necesidad de leer informacin desde un archivo de configuracin, el mdulo de
ConfigParser que incluye Python facilita mucho esta tarea.

Para darles un ejemplo, pueden observar el siguiente archivo de configuracin que usaremos a modo de ejemplo:

En ese archivo se especifican los parmetros de conexin a una base de datos, en donde se guardan los datos. Las secciones se
separan entre [ ] y los parmetros y valores se separan con un =. Este archivo tiene dos secciones y en el siguiente script
veremos cmo hacer para leer la informacin:


Imagen 3 - Archivo de configuracin

Para leer los datos de la configuracin de ejemplo utilizaremos un pequeo programita que cargar valores especficos del
archivo para luego imprimirlos por pantalla:

Introduccin a Python Mdulo IV 6



Imagen 4 - Leyendo un archivo de configuracin
El script carga_configuracion.py leer el arcihvo para luego imprimir por la pantalla los valores. En un sistema real, esto permitira
almacenar los datos fuera de nuestro cdigo para que llegado el caso de tener que modificarlos, no sea necesario cambiar el
cdigo.

Conectando a la base de datos
En la seccin anterior, cuando hablamos acerca de cmo leer un archivo de configuracin, presentamos un caso de ejemplo en el
que se lea desde un archivo los datos para establecer una conexin con una base de datos. Ahora, nos vamos a ocupar de lograr
esa conexin a una base de datos y realizar consultas.

Actualmente existen un gran nmero diferentes de bases de datos. Qu es una base de datos? Una base de datos es una
coleccin de datos que tienen un contexto en comn y se almacenan para ser utilizados cuando sea necesario.

Para el desarrollo del curso, vamos a estar utilizando MySQL, para mostrar como conectarnos a una base de datos y algunas
maneras sencillas de insertar nuevos valores, o realizar consultas. Para aquellos que se decidan por probar los scripts que
utilizaremos durante estas partes del curso. Les queda como tarea del hogar el descargar e instalar el software de MySQL para
tener acceso a l. Adems, este no es el nico desafo sino que tambin hay que instalar las libreras necesarias de Python para
conectarse, en otras palabras tienen que instalar MySQLdb
1
.

Una vez que tengan acceso a la base de datos, y recopilen la informacin, podrn probar los scrtips de esta seccin.

Conexin a la base de datos

A continuacin se muestra un script que nos permite conectarnos a una base de datos de MySQL en el servidor local. El usuario se
llama python, y se autentica con el password programando a la base curso_python:


1
Segn su plataforma el software puede variar: http://stackoverflow.com/questions/372885/how-do-i-connect-to-a-mysql-
database-in-python
Introduccin a Python Mdulo IV 7



Imagen 5 - Conexin a la base de datos
El script es bastante claro. Primero creamos la variable bd que representa la conexin a la base de datos y con la cual vamos
a poder interactuar. Luego creamos un cursor, para poder ejecutar consultas a la base. Luego nos traemos todos los registros de
la base TU_TABLA . Finalmente, imprimimos todas las columas por la pantalla.

Es recomendable tomarse un tiempo para armar y practicar qu otras instrucciones se pueden ejecutar, como as tambin
entender qu hacen los mtodos execute() y fetchall().

Al tener una conexin a una base de datos podemos insertar, consultar o modificar los valores y parmetros de la base de datos,
obvoi que para lograr todo esto hace falta un poco de tiempo, prctica y dedicacin.

Accediendo a recursos web
Otro recurso que puede ser de inters para muchos de nosotros son las pginas web. No vamos a hablar acerca de desarrollo de
sitios web y cosas por el estilo. Sin embargo, es importante que entendamos algunas maneras bsicas de interactuar con sitios
web, descargarlos y ver su contenido.

Para este cometido existen libreras que ya vienen incluidas en Python y otras que se pueden instalar como BeautifulSoap
2
, u
otros frameworks de Python para interactuar con sitios web. El mdulo que vamos a necesitar para interactuar con una pgina
web es urllib2.

Conclusin

A lo largo del presente mdulo hemos repasado de qu manera interactuar con archivos de texto, vimos cmo utilizar funciones
bsicas para interactuar con archivos de configuracin y bases de datos. Es una realidad que estamos hablando de la punta del
iceberg y que existe mucho camino por recorrer. Un lenguaje de programacin tan completo y extenso como es Python lleva
tiempo de aprender y existe un nmero de libreras para las ms remotas funcionalidades.

Python cuenta con libreras para debuggers, herramientas de pentesting, fuzzers y muchas cosas ms. Si bien no las vamos a ver
en detalle en este curso las vamos a mencionar ms adelante en oros mdulos. Ahora lo importante es practicar, leer de archivos
e ingresarlo en una base de datos, leer de la base de datos y escribir los datos en un archivo.

2
Beautifulsoup: http://www.crummy.com/software/BeautifulSoup/

Vous aimerez peut-être aussi