Semana 8: escritura y lectura de acrhivos con Python

Semana 8: escritura y lectura de acrhivos con Python#

Para iniciar, en la barra de la izquierda, aparece un símbolo de carpeta. Dándole allí tendremos varias opciones para cargar un archivo. Subirlo a drive e importarlo desde sus carpetas, o cargarlo directamente al notebook.

Diferentes modos para abir un archivo en python con open:

  • r: abre el archivo para leer (modo por defecto).

  • w: abre el archivo para escribir. Si ya existe, lo reescribe.

  • x: crea un archivo nuevo. Si el archivo ya existe, falla la operación

  • a: abre un archivo para escribir al final, no reescribe el archivo.

8.1. Leer ficheros#

#Paso 1: abrir el fichero o archivo
fichero = open('/content/trayectorias.txt','r')
fichero
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Input In [1], in <cell line: 2>()
      1 #Paso 1: abrir el fichero o archivo
----> 2 fichero = open('/content/trayectorias.txt','r')
      3 fichero

FileNotFoundError: [Errno 2] No such file or directory: '/content/trayectorias.txt'
#Paso 2: leer los datos del fichero

contador=0
for linea in fichero:
  if contador <=10:
      print(linea)
  else: break

  contador += 1
0.000000000000000000e+00 5.030000007512007709e-01 1.502999999248799012e+00

1.000000000000000021e-03 5.060000030096133417e-01 1.505999996990384560e+00

2.000000000000000042e-03 5.090000067824694829e-01 1.508999993217523761e+00

3.000000000000000062e-03 5.120000120770222818e-01 1.511999987922961530e+00

4.000000000000000083e-03 5.150000189005465856e-01 1.514999981099421689e+00

5.000000000000000104e-03 5.180000272603387801e-01 1.517999972739606074e+00

6.000000000000000125e-03 5.210000371637167893e-01 1.520999962836195207e+00

7.000000000000000146e-03 5.240000486180202977e-01 1.523999951381847850e+00

8.000000000000000167e-03 5.270000616306103058e-01 1.526999938369201226e+00

9.000000000000001055e-03 5.300000762088696860e-01 1.529999923790871019e+00

1.000000000000000021e-02 5.330000923602027374e-01 1.532999907639450932e+00
#paso 3: cerrar el fichero
fichero.close()
fichero
<_io.TextIOWrapper name='/content/trayectorias.txt' mode='r' encoding='UTF-8'>
#Contar el numero de filas en el fichero
fichero = open('/content/trayectorias.txt','r') #Lo volvemos a abrir, pues en el paso anterior se cerro

contador = 0
for linea in fichero:
  contador += 1

#fichero.close()

print(contador)
50000
def archivos(archivo):
  contador=0
  for linea in archivo:
    contador += 1


  return contador
fichero = open('/content/trayectorias.txt','r')
archivos(fichero)
50000
#Contar el numero de caracteres dentro del fichero

fichero = open('/content/trayectorias.txt','r')

contador = 0
while True:
  caracter = fichero.read(2)
  if caracter == '':
    break
  contador += 1

fichero.close()
print(contador)
1892441
fichero = open('/content/trayectorias.txt','r')

caracter = 1
contador = 0

while caracter != '':
  caracter = fichero.read(2)
  contador += 1
print(contador)
1892442

8.2. Escribir ficheros#

archivo = open('archivo.dat','w')
archivo.write('Mi primer archivo')
archivo.write('Hola')

archivo.close()
from google.colab import drive
drive.mount('/content/drive')
archivo = open('archivo.dat','w')
archivo.write('Mi primer archivo\n')  # \n esribe un salto de linea
archivo.write('Hola')

archivo.close()

Verificar que se haya creado el archivo en el panel izquierdo

#Escribir una lista en un archivo nuevo
lista = [1,2,3,4,"Hola",[1,2,3]]

archivo2 = open('archivo2.dat','w')
archivo2.write(str(lista))  #el atributo write pide que sean cadenas de caracteres

archivo2.close()

Ejercicio: cree una lista usando un ciclo, que contenga los números hasta el 100. Escriba un archivo que contenga solo los número pares de dicha lista.

lista = []

for i in range(0,101):
  lista.append(i)
lista
[0,
 1,
 2,
 3,
 4,
 5,
 6,
 7,
 8,
 9,
 10,
 11,
 12,
 13,
 14,
 15,
 16,
 17,
 18,
 19,
 20,
 21,
 22,
 23,
 24,
 25,
 26,
 27,
 28,
 29,
 30,
 31,
 32,
 33,
 34,
 35,
 36,
 37,
 38,
 39,
 40,
 41,
 42,
 43,
 44,
 45,
 46,
 47,
 48,
 49,
 50,
 51,
 52,
 53,
 54,
 55,
 56,
 57,
 58,
 59,
 60,
 61,
 62,
 63,
 64,
 65,
 66,
 67,
 68,
 69,
 70,
 71,
 72,
 73,
 74,
 75,
 76,
 77,
 78,
 79,
 80,
 81,
 82,
 83,
 84,
 85,
 86,
 87,
 88,
 89,
 90,
 91,
 92,
 93,
 94,
 95,
 96,
 97,
 98,
 99,
 100]
archivo3 = open('archivo3.dat','a')

for i in range(len(lista)):
  if lista[i]%2 == 0:         #Pregunta si el i-ésimo elemento de la lista es par
    archivo3.write(str(lista[i]))

archivo3.close()