🎨
Informática para ingeniería 2023-2024
  • Informática para ingeniería
  • Básico python
  • Estructuras de control
    • while
    • for
    • try...except
    • If, else, elif, while, for
    • Ejemplo. Ciclos anidados. Tablas de multiplicar
    • Método abreviado
    • ¿Qué hace zip() ?
  • Secuencias
  • Comparativas: Cadena, lista, tupla y conjunto
    • Ejemplos listas y funciones: Control de temperatura
    • Verificación del NIF
    • Ejemplo listas: control de temperaturas
  • Secuencias: Matriz
    • Definición: Matriz
    • Localizar valores únicos en una matriz
    • Ejemplo matrices: Suma y Multiplicación
    • verificar si una matriz es cuadrada
  • Funciones
    • Definición: funciones
    • Ejemplo de funciones
  • Módulos
    • Módulo. Definición
    • Ejemplos de Módulos: math y random
  • Método abreviado de comprensión de listas...
    • Comprensión de listas
  • Funciones- Matriz-Ejemplos
    • Ejemplo, cálculo de Nómina mensual
    • Ejemplo, cálculo de Nómina mensual (desde el programa principal)
    • Menú, matriz y funciones
    • Localizar valores únicos en una matriz. Usar Funciones
    • Ejemplo funciones, matriz, archivos: Recuento de votos
    • Matrices 2ª Prueba Evaluación Continua. Curso 2018-2019 Parcial. Prof MRD
    • Prueba Evaluación Continua. Curso 2018-2019. Examen 1. Prof. MRD
    • Gestión de una matriz de números enteros
  • Ejecutable
    • Crear un programa ejecutable
  • Archivo (ficheros)
    • Definición: archivos (ficheros)
  • Ejemplos de Matriz y archivos (ficheros)
    • ¿Cómo se multiplican dos matrices?
    • Crear una matriz a partir de un archivo
    • Pedir datos, guardarlos en una matriz y en un archivo
    • Cálcular la media de unos datos almacenados en un archivo
    • Leer archivo, modificar datos y guardarlos
  • Interfaz Gráfica
    • Definición: Interfaz Gráfica de Usuario (IGU)
      • Label
      • Button
      • Radiobutton y Checkbutton
      • LabelFrame
      • Listbox
      • Entry
      • Características comunes de Label, Entry, button, radiobutton checkbutton
      • ttk.Combobox
      • Tamaño de una ventana
    • Ejemplo de Entorno gráfico: RadioButton
    • Visualizar la especialidad y nombre de un alumno
    • Visualizar los datos introducidos
    • Sumar 10 a un número introducido
    • Cálculo del área de un triángulo
    • Cálculo del área de un Círculo. Y dibujo de un círculo
    • ¿Dos números son divisibles?
    • Introducir valores y graficar
    • Ejemplo de botón, lista
  • Ejemplos de interfaz gráfica y archivos
  • Entorno gráficos y archivos
    • Almacenar los datos de un alumno
Con tecnología de GitBook
En esta página
  • Ficheros de Texto
  • Pasos a seguir:
  • Paso 1. Abrir
  • Sintaxis
  • Tipo de acceso
  • Paso 2. Leer o escribir el archivo
  • Paso 2. Leer
  • Paso 2. Escribir un archivo
  • Paso 2. Leer o escribir el archivo
  • Otra opción para leer y escribir: Uso del Administrador de Contexto with
  • Ejemplo:
  • Evitar errores
  • Verificar si existe el archivo
  • Error: Verificar si existe un archivo
  • Obtener el directorio de trabajo
  • Archivos: Acceso y Manipulación Específica por Directorio y Nombre
  • Encoding
  • Ejemplo
  • Enunciado
  • Análisis:
  • Código crear el archivo
  • Archivo Resultado
  • Código leer archivo (read)
  • Código leer archivo (readlines)
  • Probarlo
  • Explicación
  1. Archivo (ficheros)

Definición: archivos (ficheros)

Ficheros de Texto

Nociones básicas y ejemplo

Pasos a seguir:

Para trabajar con archivos:

  1. Se abre el archivo.

  2. Se lee o se escribe en el archivo.

  3. Se cierra el archivo.

Paso 1. Abrir

Sintaxis

nombre = open(<ruta del archivo>, <modo>)

Donde:

  • ruta del archivo, es tipo str que indica el directorio donde está el archivo.

  • modo es tipo str que indica cómo se accede al archivo (tipos de acceso).

Tipo de acceso

Si no se indica el tipo de operación el archivo se abrirá en modo de lectura.

  • \'r\' es el modo de lectura.

  • \'w\' es un modo de escritura. En caso de existir un archivo, éste es sobrescribe.

  • \'a\' es un modo de escritura. En caso de existir un archivo, comienza a escribir al final de éste.

  • \'r+'\: Abre el archivo para lectura y escritura.

  • \'x\' es un modo de escritura para crear un nuevo archivo. En caso de que el archivo exista se emitirá un error de tipo FileExistsError.

  • \'+\' es un modo de escritura/lectura

Paso 2. Leer o escribir el archivo

Paso 2. Leer

  • archivo.readline(). Lee línea a línea. Leerá el texto desde la posición en que se localice hasta encontrar el caracter de escape retorno de línea (\n).

  • archivo.readlines(). Lee todas las líneas del archivo y devuelve una lista con cada elemento siendo una línea de texto.

  • archivo.read(). Todo el archivo. Es una cadena.

Paso 2. Escribir un archivo

archivo.write().

Paso 2. Leer o escribir el archivo

archivo.close().

Otra opción para leer y escribir: Uso del Administrador de Contexto with

Es utilizar la función with .....as :

La diferencia entre with open() y open() es que el primero, garantiza que el archivo se abrirá y cerrará correctamente, mientras que al utilizar open() directamente, eres responsable de cerrar el archivo manualmente.

Ejemplo:

Leer un archivo, que previamente se le pregunta el nombre al usuario

import os
def leer_archivo(nombre_archivo):
  
        with open(nombre_archivo, 'r') as archivo:
            contenido = archivo.read()
            print(contenido)
# Solicitar al usuario el nombre del archivo a leer
nombre_archivo = input("Ingrese el nombre del archivo a leer: ")
# Llamar a la función para leer y visualizar el archivo
leer_archivo(nombre_archivo)

Ojo, si el archivo no existe genera un error.

Para crear un archivo de texto, que almacena las notas de n alumnos, el código sería:

print("Almacena notas")

# Utilizar 'with' para asegurarse de que el archivo se cierra automáticamente
with open("datos.txt", "a") as archivo:
    # Cuántos datos vas a introducir
    cuantos_alumnos_introducir = int(input("Dame el número de alumnos a introducir: "))
    
    # Pedir los valores y almacenarlos
    for i in range(cuantos_alumnos_introducir):
        nombre = input("Dame el nombre: ")
        nota = float(input("Dame la nota 1: "))
        nota1 = float(input("Dame la nota 2: "))
        
        # Almacenar la información en el archivo, separándola por ';' en el archivo
        texto = f"{nombre};{nota};{nota1}\n"
        archivo.write(texto)

# Al salir del bloque 'with', el archivo se cierra automáticamente
print("Fin de programa")

Evitar errores

Evita que el programa rompa, y si se genera un error visualiza un mensaje

try: 
    archivo=open("datos.txt","r")
except:
    print("Se ha generado un error")

Si se quiere saber con exactitud que el error es que no existe el error se utiliza FileNotFoundError

try:
        archivo=open("datos.txt","r")
except FileNotFoundError:
        print("El archivo no existe.")

Verificar si existe el archivo

Error: Verificar si existe un archivo

No se puede añadir datos, ni leer un archivo que no existe. Para evitar un error, se debe importar el módulo os y verificar que el archivo exista, os.path.exists.

import os
nombre_del_archivo="archivo.txt"
if os.path.exists(nombre_del_archivo):
    print("Existe el archivo")
else:
    print("El archivo no existe")

Obtener el directorio de trabajo

Se debe importar el modulo os, utilizando la import os, os.getcwd().

nombre="ejemplo"
directorio=os.getcwd()
archivo=directorio+ "//" + nombre + ".txt"

Importante:

Si el archivo existe, añade datos:

archivo=open("datos.txt","a")

Si se utiliza w, si existe el archivo, lo borra e introduce una nueva.

archivo=open("datos.txt","w")

Archivos: Acceso y Manipulación Específica por Directorio y Nombre

Para trabajar con un archivo llamado archivo.txt que se encuentra en la carpeta, por ejemplo C:\Documentos en Python, hay varias operaciones básicas que podrías querer realizar, como leer el archivo, escribir en él, o agregar contenido. A continuación, te muestro cómo puedes realizar estas operaciones:

1. Leer el archivo

Para leer el contenido de archivo.txt, puedes usar el siguiente código:

ruta_archivo = r"C:\Documentos\archivo.txt"
#o
ruta_archivo = "C:\Documentos\\archivo.txt"


try:
    with open(ruta_archivo, 'r') as archivo:
        contenido = archivo.read()
        print(contenido)
except FileNotFoundError:
    print("El archivo no fue encontrado.")
except IOError:
    print("Error al leer el archivo.")

2. Escribir en el archivo

Si deseas escribir en el archivo (sobrescribiendo cualquier contenido existente), puedes usar este código:

ruta_archivo = r"C:\Documentos\archivo.txt"
# o
ruta_archivo = "C:\Documentos\\archivo.txt"

try:
    with open(ruta_archivo, 'w') as archivo:
        archivo.write("Escribiendo en radar.txt")
except IOError:
    print("Error al escribir en el archivo.")

3. Agregar contenido al archivo

Si prefieres agregar contenido al final del archivo sin borrar lo que ya está escrito, puedes hacer lo siguiente:

ruta_archivo = r"C:\Documentos\archivo.txt"
#o
ruta_archivo = "C:\Documentos\\archivo.txt"

try:
    with open(ruta_archivo, 'a') as archivo:
        archivo.write("\nAñadiendo una nueva línea al final.")
except IOError:
    print("Error al escribir en el archivo.")

Encoding

Para leer un archivo que contiene caracteres especiales como acentos en Python, debes asegurarte de que especificas correctamente la codificación del archivo al abrirlo. Usualmente, los archivos en español y otros idiomas que usan acentos están codificados en UTF-8, aunque puede variar dependiendo de cómo se haya creado el archivo.

Ejemplo

# Se abre el archivo usando la codificación 'utf-8'
with open('nombre_del_archivo.txt', 'r', encoding='utf-8') as archivo:
    # Leemos el contenido del archivo
    contenido = archivo.read()
    print(contenido)

Enunciado

Introducir las notas del primer y segundo parcial de los alumnos de la asignatura Informática para ingeniería. Para ello, previamente le preguntará al usuario cuantos alumnos va a introducir. Estos datos se almacenarán en un archivo.

Análisis:

  • Preguntar al usuario cuantos alumnos va a introducir (verificar que sea mayor que 0 y menor 90).

  • Pedir las calificaciones de cada uno de los alumnos sus calificaciones (deben ser que cero y menor que 10).

  • Almacenar la información en el archivo.

Diagrama

OJO, Suponemos que el usuario al introducir las notas y el nombre no se equivoca

Código crear el archivo

print("Almacena notas")
#Abrir el archivo el archivo
archivo=open("datos.txt","a")
#Cuantos datos vas a introducir
cuantos_alumnos_introducir=int(input("Dame el número de alumnos a introducir?"))
# Pedir las valores y los almaceno
for i in range(cuantos_alumnos_introducir):                               
    nombre=input("Dame el nombre")
    archivo.write(nombre+";")
    nota=float(input("Dame la nota 1"))
    nota1=float(input("Dame la nota2"))
    #almacena la información en el archivo, separándola por ;en el archivo
    texto=str(nota)+";"+str(nota1)+"\n"
    archivo.write(texto)
#Cierro el archivo
archivo.close()
print("Fin de programa")

Archivo Resultado

Código leer archivo (read)

#Abrir el archivo
archivo=open("datos.txt","r")
#Visualizo los datos del archivo
print(archivo.read())
archivo.close()

Código leer archivo (readlines)

#abro el archivo
archivo=open("datos.txt","r")
linea=1
#leo el archivo linea a linea y visualizo
for lineas in archivo.readlines():
    print("numero", linea, "  ", lineas)
    linea+=1
archivo.close()

Probarlo

Explicación

AnteriorCrear un programa ejecutableSiguiente¿Cómo se multiplican dos matrices?

Última actualización hace 11 meses

Google Colaboratory
Logo
114B
datos.txt