---
title: Curso de Python &#8211; 8. Ficheros
url: https://jarroba.com/curso-de-python-8-ficheros/
author: Ramón Invarato
date: 2020-07-17
modified: 2026-10-21
language: es
license: CC BY-NC-SA 3.0 (https://creativecommons.org/licenses/by-nc-sa/3.0/) — attribution: "Curso de Python &#8211; 8. Ficheros", Ramón Invarato, jarroba.com
categories: Lenguajes de Programación
tags: python
series: Curso de Python (part 9 of 9)
repository: https://github.com/jarroba/Curso-Python/tree/master/Ejercicios
---

# Curso de Python &#8211; 8. Ficheros

> Aprende a trabajar con ficheros y directorios en Python: rutas con Path, lectura y escritura de ficheros, y ejercicios prácticos con datos de futbolistas.

Programamos para que una máquina gestione los datos por nosotros y como nosotros queremos. Los ficheros permitirán guardar tanta cantidad de datos como queramos, unos ficheros con información antes de ser procesada y otros con la información después de ser procesada; por ello serán una de las principales entradas y salidas de nuestro programa.

 

 

## Teoría

 Saltar al contenido del PDF

 

[**Descargar Teoría**](https://github.com/jarroba/Curso-Python/raw/master/Teoria/8-Fichero.pdf)

 

 

## 8.1- Ficheros y Directorios

 

Un sistema operativo (Windows, Linux, Mac, Android, etc.) gestiona los datos con ficheros y estos estarán clasificados en estructuras de directorios. Saber gestionar los ficheros y directorios será un punto crucial a la hora de trabajar con ellos.

 

 

Nota

 

### Para saber más en las siguientes entradas:

 

- [Lectura y Escritura de ficheros en Python, con ejemplos](https://jarroba.com/lectura-y-escritura-de-ficheros-en-python-con-ejemplos/)

 

 

## 8.2- Rutas (Path)

 

La ruta es el camino a seguir a través de los directorios para alcanzar un fichero o varios ficheros. Con el método Path será muy fácil y práctico llegar a utilizar tantos ficheros como queramos.

 

 

 

## Ejercicios

 

### Ejercicio [8.1-crear_fichero_y_leer_fichero.py](https://github.com/jarroba/Curso-Python/blob/master/Ejercicios/8.1-crear_fichero_y_leer_fichero.py)

 

![Captura de la consola con el contenido del fichero en dos partes: los números 4, 7, 4, 2, 5 y luego dos líneas de texto añadidas](https://jarroba.com/wp-content/uploads/2020/07/Ejercicio-fichero-www.jarroba.png)

 

Con código Python crea un directorio en una ubicación de tu ordenador y dentro un fichero.

 

Dentro del fichero escribe cinco líneas de números aleatorios del 1 al 10 (Parte 1).

 

Luego lee ese fichero e imprime cada línea por pantalla.

 

A continuación, añade al final del fichero un par de líneas de texto (Parte 2).

 

Y vuelve a leer el fichero.

 

### Ejercicio [8.2-](https://github.com/jarroba/Curso-Python/blob/master/Ejercicios/8.2-futbolistas.py)[futbolistas.py](https://github.com/jarroba/Curso-Python/blob/master/Ejercicios/8.2.-futbolistas.py)

 

Dado el fichero “futbolistas.txt” en el que en cada línea contiene datos de un futbolista, se pide:

 
1. Implementar una función llamada “file_to_list(file_dir)” que dada la ruta del fichero futbolista.txt, devuelva una  
lista en la que cada elemento corresponde con una línea del fichero; es decir, que cada elemento representa a los datos del futbolista.
2. Implementar una función llamada “get_top_goals_players(list_players, top_n)” que dada la lista de futbolistas  
devuelva en otra lista los “top_n” futbolistas más goleadores.
3. Implementar una función llamada “get_players_by_team(list_players, team)” que dada la lista de futbolistas devuelva  
en otra lista con todos los jugadores que han militado en el equipo que se pasa como parámetro (team), ordenados de forma descendente por el número de minutos que han jugado.
4. Implementar una función llamada “write_list_to_file(list_to_write, file_dir)” que dada la lista que se pasa como  
parámetro (list_to_write), escriba en el fichero que se pasa como parámetro “file_dir” cada elemento de la lista en una línea.
5. Escribir las listas creadas en los puntos b y c en un fichero, utilizando la función implementada en el punto d.

 

En el fichero de futbolistas.txt, cada línea contiene datos de un jugador de futbol y los datos están separados por el separador “::”. Los datos que hay en cada posición son los siguientes:

 

| 1 | id | 14 | PartidosCompletos | 27 | Numligas |
| --- | --- | --- | --- | --- | --- |
| 2 | Apodo | 15 | PartidosSuplente | 28 | NumCopasDelRey |
| 3 | Nombre | 16 | PartidosSustituidos | 29 | NumSuperCopas |
| 4 | FechaNacimiento | 17 | partidosPorTemporadas | 30 | NumChampions |
| 5 | LugarNacimiento | 18 | PorcentajePartidos | 31 | NumUEFAs |
| 6 | Pais | 19 | MinutosJugados | 32 | NumEuropaLeagues |
| 7 | Altura | 20 | MinutoPorPartido | 33 | NumSuperCopasEuropa |
| 8 | Peso | 21 | Goles | 34 | NumMundialesClubes |
| 9 | Demarcacion | 22 | TarjetasAmarillas | 35 | NumIntercontinentales |
| 10 | NumTemporadas | 23 | TarjetasRojas | 36 | NumMundiales |
| 11 | NumEquipos | 24 | PartidosSeleccionEspaniola | 37 | Numeurocopas |
| 12 | PartidosJugados | 25 | GolesSeleccionEspaniola | 38 | ValorMercado |
| 13 | PartidosTitular | 26 | Equipos |  |  |

## Serie: Curso de Python

1. [Curso de Python &#8211; 0. Entorno de desarrollo para Python](https://jarroba.com/curso-de-python-0-entorno-de-desarrollo-para-python.md)
2. [Curso de Python &#8211; 1. Introducción](https://jarroba.com/curso-de-python-1-introduccion.md)
3. [Curso de Python &#8211; 2. Tipos básicos de datos](https://jarroba.com/curso-de-python-2-tipos-basicos-de-datos.md)
4. [Curso de Python &#8211; 3. Colecciones](https://jarroba.com/curso-de-python-3-colecciones.md)
5. [Curso de Python &#8211; 4. Estructuras de control de flujo](https://jarroba.com/curso-de-python-4-estructuras-de-control-de-flujo.md)
6. [Curso de Python &#8211; 5. Funciones](https://jarroba.com/curso-de-python-5-funciones.md)
7. [Curso de Python &#8211; 6. Bibliotecas/Paquetes](https://jarroba.com/curso-de-python-6-bilbiotecas-paquetes.md)
8. [Curso de Python &#8211; 7. Excepciones](https://jarroba.com/curso-de-python-7-excepciones.md)
9. [Curso de Python &#8211; 8. Ficheros](https://jarroba.com/curso-de-python-8-ficheros.md)

