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()