Está en la página 1de 4

Archivos

Archivos

Para guardar información de forma permanente debe almacenarse en archivos. De esta manera tenemos información del programa después
de que el programa haya terminado su ejecución.

Python tiene métodos para crear archivos, abrir archivos ya existentes y modificarlos.

Procedimientos para trabajar con archivos

Abrir archivo con función open() y asignarlo a una variable


Efectuar operaciones de lectura/escritura
Cerrar el archivo con función close() al terminar de trabajar con el archivo

Abrir un Archivo

In [12]: f = open("miarchivo.txt", "w") #(Nombre archivo, modo escritura)

Nombre de Archivo

Si sólo se especifíca el nombre del archivo, python lo buscará o creará en el mismo directorio donde se encuentre el script de Python en
el que estemos trabajando.
Si se quiere buscar/crear en otro directorio, escribir la ubicación (Ejm: c:/ubicacion/del/archivo/archivo.txt)

Modos

"r" : Lectura(read). El archivo debe existir, o se generará error al tratar de leer


"w": Escritura(write). Si el archivo existe, su contenido se sobrescribe. Si no existe, se crea.
"a": Añadir(add). Si archivo existe, se agregan nuevos datos. Si no existe, se crea.
"r+": Lectura y escritura.
"w+": Escritura y lectura.
"a+": Adición y lectura

Cerrar Archivo

El archivo debe cerrarse con función close() una vez se haya terminado de trabajar con él.

In [9]: print(f.closed) #Devuelve True si el archivo ha sido cerrado, caso contrario False

Out[9]: False

In [13]: f.close()

In [11]: print(f.closed)

Out[11]: True

Abrir sin cerrar archivo

1 of 4
Archivos

In [ ]: with open("miarchivo.txt", "w") as f:


#Dentro de este bloque realizo cualquier operación con el archivo

#Terminado bloque with, archivo se cierra automáticamente

Leer Archivo

readline()

In [28]: f = open("miarchivo.txt", "r")

In [29]: linea = f.readline() #Leo una línea del archivo hasta encontrar fin de línea \n
print(linea)
print(type(linea))

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua.

<class 'str'>

In [30]: linea = f.readline() #Leo siguiente línea


print(linea)

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea com
modo consequat.

In [31]: linea = f.readline() #Leo tercera línea


print(linea)
linea = f.readline() #Leo cuarta línea
print(linea)

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur.

Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit an
im id est laborum.

Cuando se llega al final del archivo y no hay más líneas, readline() retorna un str vacío

In [32]: linea = f.readline()


print(linea)

In [33]: f.close() #Cierro archivo luego de leer

readlines()

In [35]: f = open("miarchivo.txt", "r")


lineas = f.readlines() #Leo todo el archivo
f.close() #Cierro archivo luego de leer

print(lineas)
print(type(lineas))

['Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.\n', 'Ut enim ad minim veniam, quis nostrud exercitation ul
lamco laboris nisi ut aliquip ex ea commodo consequat.\n', 'Duis aute irure dolor in reprehe
nderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n', 'Excepteur sint o
ccaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laboru
m.\n']
<class 'list'>

2 of 4
Archivos

In [36]: for linea in lineas:


print(linea)

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea com
modo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur.

Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit an
im id est laborum.

¡Advertencia!: No utilizar función readlines() para archivos muy grandes.

Leer archivo utilizando lazo

In [38]: f = open("miarchivo.txt", "r")

for linea in f: #Para cada linea de mi archivo


# Dentro del for puedo hacer cualquier operación con cada línea del archivo
print(linea.lower())

f.close() #Cierro archivo luego de leer

lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua.

ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea com
modo consequat.

duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur.

excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit an
im id est laborum.

Escribir un archivo

write()

In [39]: f = open("nuevoarchivo.txt", "w") #Abro archivo en modo escritura

In [40]: f.write("Hola mundo") #Todo lo que quiera escribir debe ser de tipo string.

Out[40]: 10

In [42]: f.close()

In [43]: f = open("nuevoarchivo.txt", "r")


for linea in f:
print(linea)
f.close()

Hola mundo

La función write() no agrega salto de línea al archivo. Si quiero agregar salto de línea debo añadir "\n" a mi string

3 of 4
Archivos

In [44]: f = open("nuevoarchivo.txt", "w")


f.write("Linea uno\n")
f.write("Linea dos") #Si no agrego "\n" no se crea salto de línea
f.write("Linea tres\n") #Esto se escribirá en la segunda línea
f.close()

In [45]: with open("nuevoarchivo.txt", "r") as f:


for linea in f:
print(linea)

Linea uno

Linea dosLinea tres

writelines()

In [54]: f = open("nuevoarchivo.txt", "w")


lineas = ["Linea 1\n", "Linea 2\n", "Linea 3\n", "Linea 4\n"] #Cada línea debe terminar con
salto de linea
f.writelines(lineas)#Recibe una lista de strings
f.close()

In [55]: with open("nuevoarchivo.txt", "r") as f:


for linea in f:
print(linea)

Linea 1

Linea 2

Linea 3

Linea 4

Ejercicios

1. Escriba una función que reciba el nombre de un archivo y retorne el número de líneas y el número de caracteres en el archivo

1. Dado un archivo que contenga una lista de nombres en cada línea, y un archivo que contenga una lista de edades en cada línea, cree un
nuevo archivo nombres_edades.txt que contenga en cada línea el nombre y la edad de cada persona en el formato nombre,edad.

1. Dado un archivo que contenga una lista de nombres en cada línea, y un string con un nombre, cree una función que agregue el nombre al
final del archivo si el nombre no existe en el archivo.

1. Escriba una función que reciba el nombre de un archivo y una palabra y retorne el número de veces que aparece la palabra en el archivo.

1. Dado un archivo que contenga en cada línea el nombre y edad de una persona en el formato nombre,edad, cree una función que
imprima el nombre y la edad de la persona más joven, la persona más vieja y el promedio de edades

4 of 4

También podría gustarte