Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:cursos:introduccion_programacion_python:ficheros

¡Esta es una revisión vieja del documento!


Ficheros en Python

Notas de la formación por parte de la Consellería de Promoción do Emprego e Igualdade y el Clúster TIC Galicia impartida en 2023: Introducción a la programación con Python

Para manipular ficheros, siempre actuaremos de la misma forma:

  1. Apertura del fichero
  2. Operaciones de lectura o escritura
  3. Cierre del fichero

Grabar datos en ficheros (escritura)

# Apertura del fichero en modo escritura ("w") y codificación UTF-8
# Si el fichero no existe, se crea
f = open("mensaje.txt", "w", encoding="utf8")
 
# Operaciones de escritura
f.write("Un mensaje.\n")
f.write("Otro mensaje.")
 
# Cierre del fichero
f.close()

Si queremos añadir contenido a un fichero existente, en lugar de sustituir todo su contenido, lo abriremos con el modo “append” (a):

# Apertura del fichero en modo "append" ("a") y codificación UTF-8
# Si el fichero no existe, se crea
f = open("mensaje.txt", "a", encoding="utf8")
 
# Operaciones de escritura
f.write("Un mensaje más.")
 
# Cierre del fichero
f.close()

Si el fichero no existiese o estuviera vacío, append lo crearía y añadiría el texto que indicásemos.

Cargar datos de ficheros (lectura)

# Apertura del fichero en modo lectura ("r"), 
# especificando codificación UTF-8
f = open("mensaje.txt", "r", encoding="utf8")
 
# Operaciones de lectura
datos = f.read()
print(datos)
# Cierre del fichero
f.close()

Podemos indicar la ruta del fichero en open:

# Apertura del fichero en modo lectura ("r"), 
# especificando codificación UTF-8
f = open("/home/tempwin/mensaje.txt", "r", encoding="utf8")
 
# Operaciones de lectura
datos = f.read()
print(datos)
# Cierre del fichero
f.close()

Podemos limitar los datos a leer como argumento del método read:

# Apertura del fichero en modo lectura ("r"), 
# especificando codificación UTF-8
f = open("mensaje.txt", "r", encoding="utf8")
 
# Operaciones de lectura, limitando los datos a leer
# (número de bytes a leer)
datos = f.read(10)
print(f"Primer bloque: '{datos}'")
print(f"Segundo bloque: '{datos}'")
 
# Cierre del fichero
f.close()

Si nos interesa leer línea a línea:

# Apertura del fichero en modo lectura ("r"), 
# especificando codificación UTF-8
f = open("mensaje.txt", "r", encoding="utf8")
 
# Operaciones de lectura, línea completa (válida para archivos de texto)
# (número de bytes a leer)
datos = f.readline()
print(f"Datos leídos: '{datos}'")
 
# Cierre del fichero
f.close()

Otra forma de leer línea a línea un archivo de texto, aprovechando que open devuelve un objetivo iterable:

# Apertura del fichero en modo lectura ("r"), 
# especificando codificación UTF-8
f = open("mensaje.txt", "r", encoding="utf8")
 
for linea in f:
    print(f"Datos leídos: {linea}")
 
f.close()

Alternativa:

# Apertura del fichero en modo lectura ("r"), 
# especificando codificación UTF-8
f = open("mensaje.txt", "r", encoding="utf8")
 
while True:
    linea = f.readline()
    if not linea:
        break
    print(f"Datos leídos: {linea}")
 
f.close()
informatica/programacion/python/cursos/introduccion_programacion_python/ficheros.1681922140.txt.gz · Última modificación: por tempwin