Está en la página 1de 6

14-APRENDIENDO PYTHON DESDE CERO (archivos) El ultimo tipo de objeto son los archivos y con esto terminamos la enumeracion

y la explicacion de cada uno. La mayoria tenemos nocion de los archivos de nuestra PC, compartimientos que alojan informacion en nuestra computadora que son manejados por el sistema operativo. La funcion open que viene incluida en python, crea un objeto archivo, que es un link a un archivo que reside en nuestra maquina. Una vez que llamamos a open, podemos leer y escribir en el archivo externo asociado, gracias a metodos especiales para archivos, que python trae incluidos. OPEN o FILE (ABRIR O CREAR) Cuando queremos establecer un link a un archivo existente o crear un nuevo archivo utilizamos el metodo open. (es similar a usar file (), los parametros son los mismos y hacen exactamente lo mismo) b=open('C:\myfile1', 'w')

Veo que cree un archivo vacio llamado myfile1, con permiso de escritura (w), y especifique el path, si no especificara path, lo creara en donde se ejecuta el script. Bueno alli cree un archivo vacio donde podre escribir, aunque realmente lo que tengo en python es ahora un link a ese archivo, que se mantendra hasta que no lo cierre. Si escribo ambas lineas en wing en la parte superior, donde se escriben los scripts, para ver la ayudaque me da , vere que al tipear b, que es un objeto archivo y el punto me salen los metodos que puedo aplicarle al archivo.

Elegimos el metodo write para escribir algo en el archivo, vuelvo a la ventana shell o interactiva, para poder ver los resultados al ir tipeando cada linea.

b=open('C:\myfile1', 'w') b.write('hello text file\n') y luego cerramos el link al archivo con lo cual ya no podremos aplicarle metodos a no ser que usemos open en el nuevamente. b.close () Ahora que lo cerre el trabajo esta terminado, si lo arrastro a un bloc de notas vere lo que escribi

Ahora si quiero leer el contenido tendre que reabrirlo, en este caso lo hago con el parametro r o de lectura, El parametro 'r' funciona solo si el archivo ya existe en nuestra maquina en el path correcto, si el archivo no existe dara error al no hallarlo, o sea 'r' no crea un archivo vacio como en el caso de 'w', solo lee lo que ya existe. a = open('C:\myfile1', 'r') a.readline()

Con readline leere la primera linea del archivo

Si repito a.readline(), intentara leer la siguiente linea y como no hay mas dara vacio. a.close () Ahora la cierro y le agrego a mano varias lineas mas al archivo, en este caso lo guarde con la extension txt.

a = open('C:\myfile1.txt', 'r') lo reabro para lectura puedo leer linea a linea a.readline( )

cada vez que hago un readline salta a leer la linea siguiente

puedo crear una lista con las lineas que leo del archivo. a.readlines( )

Como habia leido ya dos lineas con readline, en este caso readlines continuara donde dejo el puntero de lectura el metodo anterior y creara una lista desde alli hasta el final. Puedo leer el contenido entero. S= a.read ()

Veo que tuve que volver a hacer open nuevamente, porque readlines deja el puntero de lectura apuntando al final del archivo, en el siguiente caso tambien lo tuve que hacer. Puedo leer una cierta cantidad de caracteres S= a.read (5)

Si repito veo que lee los cinco siguientes, por lo cual debo tener cuidado al leer porque si el puntero de lectura queda apuntando al medio, pues no podre leer del principio sin resetearlo.

Si quiero escribir en el mismo archivo, tendre que cerrarlo con close y abrirlo nuevamente para escritura. a.close () a = open('C:\myfile1.txt', 'w') a.write('pepito')

Crearemos el equivalente al comando copy (COPY MENU.TXT MENU.BAK) # Primero abrir dos archivos para read(r) y write(w)se llamaran menu.txt y menu.bak, el archivo menu.txt debe existir y es el que quiero copiar, el menu.bak lo creara el script. inp = open("menu.txt","r") outp = open("menu.bak","w") # leeremos cada linea, copiando cada nueva linea al otro archivo dentro de una iteracion, line ira tomando los valores de cada linea y los escribiremos en la salida. for line in inp: outp.write(line)

print "1 file copied..." # Ahora cerremos los archivos y listo inp.close() outp.close() ACLARACION IMPORTANTE DEL FUNCIONAMIENTO LOS PARAMETROS DE R W y A PARAMETRO 'r': Para abrir un archivo que ya existe en nuestra maquina, lo podemos hacer con r, asi lo abriremos para lectura, pero si el archivo no existe no lo creara y nos dara error. PARAMETRO 'w':Abrira un archivo que ya existe para escribir en el y lo que habia alli antes se perdera, si no existe el archivo se creara vacio. PARAMETRO 'a' Si el archivo no existe y queremos crearlo nuevo, podemos como vimos usar 'w', pero perderemos su contenido, la otra opcion es usar 'a', tambien si no existe lo creara, y si existe le agregara datos a continuacion de donde termino sin perder la info existente. Por eso esta variante del script

inp=open("C:\menu.txt","r") outp=open("C:\menu.bak","a") for line in inp: outp.write(line) print '1 file copied...' #ahora cerremos los archivos y listo inp.close() outp.close() cada vez que lo usemos ira agregando a continuacion en bak sin perder la info que tenia antes el mismo, siempre apendeando al final lo que haya en menu.txt.

Existen muchos metodos para archivos los cuales probablemente con la ayuda de WING podremos saber facilmente que hace cada uno, es muy probable que un anexo con algunos metodos mas se agregue a esta parte, ustedes pueden tratar de sacarlos y si no pueden revisar los anexos para ver si esta bien lo que hallaron o ayudarse. Terminamos con los objetos, y su enumeracion, en la parte siguiente seguiremos con otro tema. Hasta la parte 15 Ricardo Narvaja