Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Tema 5 - Python - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Bueno, pues aquí estamos un día más en nuestro módulo de Python, ¿verdad? Estamos ya a unidad 5. Ya nos queda poquito, porque si veis aquí, la unidad 5 va del 5 de marzo al 16 de abril.
00:00:00
Y luego ya empezamos con programación en unidad de objetos, encapsulación, herencia, polimorfismo, que va a ser muy interesante y entretenido, ya veréis.
00:00:15
Pero vamos, que ya prácticamente está todo hecho
00:00:23
Este tema pues va de ficheros
00:00:27
No de cómo leer y escribir en ficheros, bastante sencillito
00:00:31
Pues he subido aquí un código plano
00:00:34
Que tendréis que copiarlo en un Visual Studio Code
00:00:37
O en el IDE que estáis utilizando
00:00:41
¿Vale?
00:00:43
Aparte de eso...
00:00:44
Ay, perdonad, vamos a por otra vez
00:00:46
Como veis, aquí hago referencia a una serie de ficheros
00:00:47
registros.txt, datos.vim, archivo.txt, prueba.txt.
00:00:51
Claro, estos ficheros tendréis que tenerlos, porque si no os va a dar error de que no consiga abrirlos.
00:01:01
¿De acuerdo?
00:01:12
vale
00:01:13
yo creo que esto de datos.bin
00:01:16
lo vamos a sustituir por registros.txt
00:01:20
luego lo
00:01:22
lo adapto
00:01:23
vale, yo ya por mi parte
00:01:25
lo tengo aquí, veis
00:01:28
que tengo aquí el código
00:01:29
en .py
00:01:31
y luego los ficheros
00:01:34
de acuerdo, para que veamos
00:01:35
como se van cambiando y tal
00:01:37
entonces vamos a abrirlo
00:01:39
verdad que se abre aquí open folder y lo tengo aquí así que genial y es
00:01:42
interesante ozor
00:01:55
lo tenemos aquí entonces hemos dicho que vamos a cambiarle aquí registros se lo
00:01:59
vamos a poner aquí mejor y así no tenemos que hacer más cosillas
00:02:05
Vale, pues vamos a explicar un poco el código que os he dejado como ejemplo
00:02:11
que os va a servir para que sepáis un poco de qué va el tema
00:02:18
obviamente podréis profundizar mucho más en los contenidos
00:02:23
pero bueno, aquí importa esta librería que nos va a dar algunas funcionalidades
00:02:26
que están bien a la hora de manejar ficheros
00:02:32
Pero bueno, lo importante es que controlemos esto de cómo abrirlos y los modos de apertura y cómo posicionar el puntero, que es como si fuera el cursor dentro del fichero para ir modificando y demás.
00:02:34
Entonces, ¿cómo abriríamos un fichero en otro idioma más estándar que Python?
00:02:52
Tendríamos una variable así como de file, que sería como un input o algo así, un file input.
00:03:03
entonces le decimos que abra
00:03:14
el fichero de pruebas.txt
00:03:19
por ejemplo
00:03:21
en modo lectura
00:03:22
con este encoding
00:03:24
entonces
00:03:26
con el fichero le decimos que lea
00:03:28
las líneas del fichero
00:03:31
y la mete en una lista
00:03:32
que la metemos en la variable
00:03:35
líneas, luego lo imprimimos
00:03:37
y luego lo cerramos
00:03:39
¿vale? una apertura
00:03:41
y un cierre
00:03:43
Pero esto funciona en Python, ¿vale? Pero no es como se hace normalmente, no es como se gestionan ficheros normalmente, ¿vale? Simplemente os lo he puesto para que veáis que lo que se hace en otros lenguajes sí que se puede hacer aquí también.
00:03:44
es un rollo eso de ahora lo abro
00:04:02
cuando termine de utilizar el fichero lo tengo que cerrar
00:04:05
si no lo dejo abierto y es ineficiente
00:04:08
lo que hacemos con el width es que tú lo abres aquí
00:04:11
y cuando se termine todo lo que está haciendo dentro del width
00:04:14
lo va a cerrar automáticamente
00:04:18
entonces nos ahorramos eso de tener que pensar
00:04:19
si el fichero está abierto, si estoy haciendo cosas
00:04:22
si lo cierro aquí y luego lo voy a tener que volver a abrir
00:04:25
me va a consumir recursos, no, ¿vale?
00:04:28
Utilizamos el width para abrirlo. Hacemos lo que tengamos que hacer y cuando ya salgamos del width se cierra automáticamente. Entonces es como mucho más cómodo.
00:04:32
Entonces, acceso secuencial. Ponemos width open, el nombre del fichero, modo lectura y el encoding que utilizamos y lo guardamos en la variable file.
00:04:44
Bueno, en este caso F, ¿no?
00:04:56
Lo puedes llamar como quieras
00:04:59
Archivo, fichero, texto, lo que quieras
00:05:01
Y luego simplemente pues lo recorremos con unas líneas
00:05:03
¿Vale? Esto de strip es para quitar espacios
00:05:07
Pero bueno, lo puedes borrar igualmente
00:05:11
¿Qué más?
00:05:14
Acceso aleatorio
00:05:16
Esto significa que vamos a acceder a las posiciones que a nosotros nos interesen
00:05:17
¿Vale?
00:05:23
Para mover el puntero utilizamos la función seek. Aquí lo que estamos haciendo es moverlo a la posición 10 y luego leer 5 posiciones del fichero de registros txt.
00:05:24
Vamos a echarle un ojo.
00:05:35
Entonces, simplemente tengo esta frase y lo que hemos dicho es que nos movemos 10 posiciones, 1, 2, 3, 4, 5, 6, 7, 8, 9 y 10, hasta aquí.
00:05:41
Y de aquí leemos 5. 1, 2, 3, 4 y 5. Así que lo que va a salir es mos espacio p. Vamos a darle un tiento. A ver si acciona. Exacto, aquí lo tenemos. Mos espacio p.
00:05:51
Aquí ha leído la línea de fichero porque la hemos abierto en modo lectura y aquí hemos accedido a las posiciones que nos han interesado.
00:06:08
¿Qué más? Acceso controlado. Aquí es donde utilizamos la librería esta de OS. Si indagáis un poco veréis que tenéis muchas más aplicaciones, muchas más funcionalidades que podéis utilizar si en algún momento lo necesitáis.
00:06:19
Le podéis echar un vistazo. Y aquí lo que hacemos es, cuando digo acceso controlado, es que si, por ejemplo, no podéis abrir el fichero porque el fichero no existe o porque os da algún error de escritura, de lectura, de apertura, no os va a sacar aquí un error de compilación.
00:06:42
Sino que tenéis la posibilidad de, a través del else, sacar como una especie de excepción y decirle, mira, que hay algo fallado. Es como más profesional, digamos. Entonces, para acceder con la librería OS, ponemos access, el nombre del fichero y el modo de escritura en este caso.
00:07:01
Entonces, luego utilizamos el width idéntico a como lo hemos utilizado aquí. La única diferencia que tenemos aquí es que utilizamos el append. Y aquí leemos bit con bytes también. Esto está muy bien explicado en el contenido, lo podéis echar un ojo.
00:07:25
Si tenéis alguna duda pues ya me comentáis. A es de append. Esto quiere decir que no va a sobreescribir sino que va a añadir.
00:07:47
Entonces aquí estamos añadiendo nueva línea protegida. Si lo ejecuto siete veces, pues cuando me meta en archivos.txt va a haber siete veces nueva línea protegida.
00:07:57
¿Vale? De hecho no sé si ya lo ejecuto alguna vez
00:08:09
A ver, se llamó archivo
00:08:13
Archivo txt
00:08:15
¿Ves? Aquí ya está dos veces
00:08:17
Si lo ejecuto una tercera vez
00:08:19
Ya hay una nueva línea
00:08:21
¿Vale? Eso es el append
00:08:23
Y luego
00:08:25
El operador este más
00:08:28
¿Vale? Aquí lo que estamos diciendo es que
00:08:30
Lo abrimos en modo lectura
00:08:33
Pero también en escritura con el más
00:08:35
Entonces, hacemos lo mismo, ¿no? Le decimos el nombre del fichero. Tenéis que tener en cuenta de que aquí lo está encontrando porque yo me he situado dentro de la carpeta, ¿de acuerdo?
00:08:37
Si, por ejemplo, abriera directamente el código, no lo encontraría porque yo estoy a la altura del código. Pero como me he situado a la altura de la carpeta, ya ve el código, puede ver todo lo que está dentro de la carpeta.
00:08:54
Y por eso no le tengo que meter una ruta absoluta de C, dos puntos barra, archivos de programa, barra Python, barra código, para que encuentre estos ficheros de texto.
00:09:09
Sino que puedo utilizar la ruta relativa de esta manera porque ya le digo que el archivo está dentro de esta carpeta.
00:09:24
¿De acuerdo? Entonces hemos dicho que con el R más es modo lectura-escritura. Entonces aquí lo que hacemos es leer el contenido del fichero, separamos por líneas, porque si tiene varias líneas que están separadas por salto de carro, con el split lo separamos en una lista de líneas.
00:09:32
Y aquí con el tel lo que decimos es que le preguntamos en qué posición está el puntero. En este caso está en la 113. Entonces podemos ver que el fichero tiene 113 carácteres porque lo hemos leído entero.
00:09:57
Luego, sacamos las líneas, que son estas de aquí, imprimimos la posición, que es la 113, como hemos dicho antes, y escribimos.
00:10:14
Cambiamos el contenido.
00:10:29
Y entonces, ¿por qué esto es equivalente a un append?
00:10:31
¿Verdad? Porque si nos metemos en el fichero de prueba, veis que ya se ha añadido varias veces al final.
00:10:36
Porque ya lo he ejecutado tres veces.
00:10:46
si lo quito
00:10:48
lo guardamos y lo volvemos a ejecutar
00:10:51
ya veis que está en vez de la 113 la 69
00:10:56
porque ya tiene menos caracteres
00:11:01
entonces si lo ejecuto solo aparece una vez
00:11:03
esto pasa porque yo he dejado el puntero aquí
00:11:05
entonces cuando le digo que escriba
00:11:09
va a escribir en el siguiente carácter
00:11:13
vale, por eso no sobreescribe
00:11:15
porque ya lo hemos leído antes
00:11:18
Y cada vez que lees el fichero, el cursor se va moviendo. Por eso cuando utilizo aquí el TEL y me pone la línea está en la 69.
00:11:20
Y si nosotros contáramos, seguramente la 69 sea justo esta posición.
00:11:30
Entonces, por eso, como el cursor se queda ahí, cuando le hago un WRITE, escribe desde ahí.
00:11:40
¿De acuerdo? Y poco más realmente porque al final tenemos que aprender a cómo abrir ficheros, a que con el width no hace falta cerrarlo como haríamos de esta manera.
00:11:47
Podemos investigar un poco con las funcionalidades de la librería OS, pero vamos, que el control de acceso es lo más importante y ya sabéis que se puede entrar como lectura, escritura, lectura, escritura, se puede añadir, hay que tener cuidado de no sobreescribir y tener conciencia de que tenemos un cursor, un puntero, que podemos manipular.
00:12:03
Podemos posicionar donde lo necesitemos, ¿no? Entonces podemos ir recorriendo el fichero en busca de una palabra, por ejemplo, y cuando encontramos esa palabra, pues cambiarla.
00:12:29
O, no sé, se me ocurre, por ejemplo, un programa de encriptado para cifrar, ¿no? Y cuando encuentre una vocal que le ponga 20 letras más adelante del abecedario, por ejemplo.
00:12:41
Pues eso se podría hacer con un cursor de esta manera. Y también daros cuenta de eso, que aquí por ejemplo estamos utilizando registros.txt, lo estamos abriendo, si no existe va a petar, va a dar un fallo porque no estamos utilizando aquí la funcionalidad de la librería OS.
00:12:56
Si no, pues nos daría un mensaje de error. Pero que cuando ejecutáis este código tenéis que tener criados estos archivos. Y si tenéis que leer, pues meterle algo de texto.
00:13:19
¿De acuerdo? Y ya está. Ya con eso, para el próximo tema ya miraremos programación orientada a objetos y herencia y polimorfismo, todas estas cosas que son muy importantes y le dedicaremos bastante más tiempo.
00:13:35
Así que nada, tema facilito y light para que os relajéis estos días y le podáis meter un poco de apretón a todo lo demás. Así que nada, muchas gracias por atender y nos vemos en el siguiente tema. Adiós.
00:13:51
- Materias:
- Tecnología
- Etiquetas:
- Innovación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado básico
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado medio
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado básico
- Subido por:
- Alberto S.
- Licencia:
- Reconocimiento - Compartir igual
- Visualizaciones:
- 2
- Fecha:
- 11 de marzo de 2026 - 17:33
- Visibilidad:
- Público
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 00′ 10″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 48.76 MBytes