Documente Academic
Documente Profesional
Documente Cultură
PROGRAMACIÓN
Clase
10
Archivos en python
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
f.close()
Método write
f.write(“Linea 1 \n”)
f.write(“Linea 2”)
f.write(“… continua línea 2”)
Método read
f.read([count])
Método readline
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
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
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.
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')