Sunteți pe pagina 1din 16

TALLER DE

PROGRAMACIÓN

Clase
10
Archivos en python

Python provee funciones básicas para manipular


archivos. Esto se realiza por medio de la creación de
un objeto de tipo file.

objeto= open(nombre_archivo [, modo_acceso][,buffering])


Archivos en python

nombre_archivo Es una cadena con el nombre del


archivo que se desea accesar

modo_acceso Indica el modo en el cual el archivo


será abierto: lectura, escritura,
anexar, etc.
buffering Si buffering es 0, no se lleva a cabo el
buffering. Si es 1, el almacenamiento
de líneas se realiza cuando se accede
al archivo. Un valor mayor a uno
indica el tamaño del buffer. Si es un
valor negativo, se utiliza el valor por
defecto.
Descripción de modos

Modo Descripción
Solo lectura. El puntero del archivo se posiciona al
r
comienzo del archivo. Es el modo por defecto.
Solo lectura en formato binario. El puntero del archivo es
rb posicionado al principio del archivo. Este es el modo por
defecto.
Lectura y escritura. El puntero del archivo se posiciona al
r+
principio del archivo.
Lectura y escritura en formato binario. El puntero del
rb+
archivo es posicionado al principio del archivo.
Escritura solamente. Sobre escribe el archivo si existe. Si no
w
existe lo crea como nuevo.
Descripción de modos

Modo Descripción
Escritura solamente en formato binario. Sobre escribe el
wb
archivo si existe. Si no existe lo crea como nuevo.
Escritura y lectura. Sobre escribe el archivo si existe. Si no
w+
existe lo crea como nuevo.
Escritura y lectura en formato binario. Sobre escribe el
wb+
archivo si existe. Si no existe lo crea como nuevo.
Anexar al final. Posiciona el puntero del archivo al final del
a
archivo. Si el archivo no existe lo crea nuevo.
Anexar al final en formato binario. Posiciona el puntero del
ab archivo al final del archivo. Si el archivo no existe lo crea
nuevo.
Descripción de modos

Modo Descripción
Anexar y leer. Posiciona el puntero del archivo al final del
a+
archivo. Si el archivo no existe lo crea nuevo.
Anexar y leer en formato binario. Posiciona el puntero del
ab+ archivo al final del archivo. Si el archivo no existe lo crea
nuevo.
Atributos del objeto file

Atributo Descripción
Regresa True si el archivo esta cerrado. De otro
file.closed
modo, regresa False.
Regresa el modo de acceso con el que fue abierto
file.mode
el archivo.
file.name Regresa el nombre del archivo
Método close

Escribe la información pendiente en el archivo y cierra el


archivo. Posterior a esto ya no se puede escribir mas en el
archivo.

f.close()
Método write

Escribe una cadena de texto al archivo. No adiciona el salto


de línea al final por defecto “\n”.

f.write(“Linea 1 \n”)
f.write(“Linea 2”)
f.write(“… continua línea 2”)
Método read

Lee una cadena desde un archivo abierto. Se pueden pasar


como parámetro el numero de bytes a leer. Este método
inicia a leer desde el inicio del archivo y si count es omitido,
lee hasta el fin de archivo.

f.read([count])
Método readline

Lee una línea del archivo abierto.

f.readline()

Método readlines

Lee todas las líneas del archivo abierto y las regresa como
una lista, conservando como parte del texto los saltos de
línea (\n).

f.readlines()
Posicionamiento del archivo

El método tell() proporciona la posición actual del puntero


del archivo.

El método seek(offset[,from]) cambia la posición del puntero


del archivo. Si from es 0 se utiliza el inicio del archivo como
referencia; si es 1, desde la posición actual; si es 2 el final del
archivo es utilizado como referencia.

f.read([count])
Algunos métodos de cadenas

Modo Descripción
Divide una cadena en varias subcadenas de
split(‘caracter’) acuerdo al carácter dato. Ejemplo
str.split(‘,’).
Divide las líneas en una cadena de texto y
splitlines() las regresa como parte de una lista. Ejemplo
str.splitlines().
Elimina la subcadena al final de la cadena y
rstrip(‘subcadena’) regresa la cadena nueva. Ejemplo
str.rstrip(‘\n’)
Ejercicio
Hacer un programa en Python que lea los datos del archivo de texto DatosClima.txt y
despliegue la fecha y el valor con la menor temperatura mínima, mayor temperatura
máxima y mayor precipitación. Además de desplegar en pantalla, el programa deberá
escribir en un archivo nuevo los resultados. El archivo datos clima consta de cuatro
columnas: fecha, temperatura mínima, temperatura máxima y precipitación.
2019-01-01 14.2 29.4 0.0
2019-01-02 15.2 31.4 0.1
2019-01-03 13.0 29.4 0.2
2019-01-04 11.1 29.4 0.0
2019-01-05 12.2 29.4 0.0
2019-01-06 14.3 29.4 4.0
2019-01-07 14.2 29.4 5.0
2019-01-08 14.2 29.4 6.0
2019-01-09 14.1 29.4 0.0
2019-01-10 14.2 29.4 0.0
2019-01-11 14.1 29.4 0.0
2019-01-12 14.2 29.4 0.0
2019-01-13 14.2 29.4 0.0 Nota. Cada campo esta
2019-01-14 14.2 29.4 0.0
2019-01-15 14.2 29.4 16.4 separado solo por un espacio
2019-01-16 14.3 29.4 20.9
2019-01-17 14.2 29.4 0.0 en blanco.
2019-01-18 14.2 29.4 0.0
2019-01-19 14.9 32.4 0.0
2019-01-20 14.2 29.4 0.0
2019-01-21 14.2 29.4 0.0
2019-01-22 14.2 29.4 12.2
2019-01-23 14.2 29.4 1.3
2019-01-24 14.9 29.4 2.5
2019-01-25 14.2 29.4 0.0
2019-01-26 14.2 29.4 0.0
2019-01-27 14.2 28.4 0.0
2019-01-28 14.1 29.4 0.0
2019-01-29 17.1 25.4 10.1
2019-01-30 14.2 29.4 0.0
2019-01-31 15.2 29.4 0.0
import numpy as np posMaxTMIN = lTMIN.index(maxTMIN)
posMaxTMAX = lTMAX.index(maxTMAX)
fname = 'DatosClima.txt' posMaxPREC = lPREC.index(maxPREC)
f = open(fname,'r')
lineas = f.readlines() print('***** Valores máximos en el archivo DatosClima.txt')
print('TMIN: ',maxTMIN,' ',lFECH[posMaxTMIN])
lFECH = [] print('TMAX: ',maxTMAX,' ',lFECH[posMaxTMAX])
lTMIN = [] print('PREC: ',maxPREC,' ',lFECH[posMaxPREC])
lTMAX = []
lPREC = [] ### Escribimos resultados en un archivo

for linea in lineas: fnameOut = 'Resultados.txt'


linea2 = linea.rstrip('\n') f = open(fnameOut,'w')
fecha,tmin,tmax,prec = linea2.split(' ') f.write('***** Valores maximos en el archivo DatosClima.txt\n')
lFECH.append(fecha) f.write('TMIN: '+str(maxTMIN)+' '+str(lFECH[posMaxTMIN])+'\n')
lTMIN.append(float(tmin)) f.write('TMAX: '+str(maxTMAX)+' '+str(lFECH[posMaxTMAX])+'\n')
lTMAX.append(float(tmax)) f.write('PREC: '+str(maxPREC)+' '+str(lFECH[posMaxPREC])+'\n')
lPREC.append(float(prec)) f.close()

aTMIN = np.array(lTMIN)
maxTMIN = aTMIN.max()

aTMAX = np.array(lTMAX)
maxTMAX = aTMAX.max()

aPREC = np.array(lPREC)
maxPREC = aPREC.max()
Ejercicio
Al programa anterior, agregar la funcionalidad para que genere una grafica con la serie
de tiempo de tmin, tmax y precipitación.

import matplotlib.pyplot as plt

x = range(1,len(lFECH)+1) ### x = np.arange(len(lFECH))

fig = plt.figure(figsize=(12,10))
plt.plot(x,aTMIN,color='blue',label='TMIN')
plt.plot(x,aTMAX,color='red',label='TMAX')
plt.bar(x,aPREC,color='green',label='PREC')
plt.legend(loc='upper right')
plt.title('Datos enero 2019')

plt.xlim(1, 31)
plt.ylim(0,35)
plt.ylabel('Valor')
plt.xlabel('Día’)
plt.xticks(x,lFECH,rotation=90)

plt.show()

fig.savefig('figura.png')

S-ar putea să vă placă și