Está en la página 1de 5

Curso de Programación en Python - Sesión 4: Tratamiento de Fichero y Fechas

Sesión 4. Tratamiento de Ficheros y de


Fechas
Actividad Entrega Obligatoria

Este documento forma parte del curso Programación con Python del CEFIRE CTEM.

Esta obra está sujeta a la licencia Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional


de Creative Commons. Para ver una copia de esta licencia, visitad
http://creativecommons.org/licenses/by-nc-sa/4.0/.

Autoria: José Luis Tomás Navarro.


Curso de Programación en Python – Sesión 4: Tratamiento de Ficheros y Fechas

Actividad Entrega Obligatoria: Artículos Obsoletos


En esta actividad obligatoria utilizaremos los ficheros y las operaciones con fechas.
Tendremos un fichero de Texto con el nombre articulos.txt, con información sobre los
artículos de una empresa que se dedica a la venta de artículos deportivos: ropa deportiva,
raquetas y todo tipo de accesorios.
La información que contendrá cada una de las líneas de este fichero, está dividida en 4
campos: Descripción del Artículo, Stock, Precio y Fecha Último Pedido, cada uno de
los campos estará separado por un guion “-”, tal y como podemos ver:

articulos.txt
campo1-campo2-campo3-campo4
...

Podemos observar un ejemplo con datos concretos:

articulos.txt
Zapatilla Running Nike-8-75.0-12/09/2018

Chandal Adidas-2-89.95-1/10/2018

Raqueta Wilson-1-120-5/03/2018

...

Como podemos observar, el stock es un número entero, el precio tiene decimales por lo
tanto será un float, mientras que la fecha viene expresada en formato dd/mm/yyyy,
utilizando la barra / para separar los campos de la fecha (día, mes y año), para
diferenciarla del guion que es el carácter que utilizamos para separar los campos del
registro.

Por una parte tenemos el fichero de articulos.txt que abriremos en modo lectura (r) y por
otra tendremos que crear 2 ficheros nuevos más: articulos_ok.txt y
articulos_obsoletos.txt. La idea es que del fichero inicial articulos.txt tenemos que
generar 2 ficheros nuevos: articulos_ok.txt y articulos_obsoletos.txt, guardando o

Página 1
Curso de Programación en Python – Sesión 4: Tratamiento de Ficheros y Fechas

escribiendo en el fichero articulos_obsoletos.txt los artículos que sean Obsoletos y


en el fichero articulos_ok, los articulos NO Obsoletos. El criterio para considerar si un
artículo es Obsoleto se explica más abajo.

En primer solicitaremos al usuario que introduzca cual es el número de días a partir del
cual un artículo es considerado obsoleto (dias obsolescencia), es decir si el número de
días transcurrido entre la fecha del último pedido del artículo en cuestión y la fecha
actual es mayor que los días de obsolescencia, entonces el artículo será
considerado obsoleto. Por cada uno de los artículos, es importante conocer este dato
por algo que explicaremos un poco más abajo. Para ello utilizaremos la función
introduce_dias_obsolescencia(), la cual se encargará de solicitar este dato y de
comprobar que este valor se encuentra ente 100 y 500 ambos inclusive. En caso de
que el valor introducido no se encuentre en este intervalo, se visualizará un mensaje de
error y la función volverá a solicitar el dato. Para realizar este control se empleará una
estructura repetitiva while ...
La función introduce_dias_obsolescencia() devolverá al programa principal (return
…) el número de días de obsolescencia (num_dias_obsolescencia).

Una vez que conocemos este dato, recorremos el fichero articulos.txt para determinar por
cada artículo si es obsoleto o no. Para conocer este dato, utilizaremos la función
es_obsoleto(…,...), a la cual le pasaremos como parámetros la cadena
fecha_ultimo_pedido y el número de días de obsolescencia y la función determinará
en función de los días transcurridos desde la fecha del último pedido, hasta la fecha
actual, si el artículo es obsoleto, devolviendo un dato booleano (return), True cuando
es obsoleto y False cuando no lo es.
En el caso de que el artículo sea obsoleto, se insertará en el fichero
articulos_obsoletos.txt, pero en lugar de insertar todos los campos, solo insertaremos
la Descripción y el Stock. Si no lo es se insertará en el fichero articulos_ok.txt con
todos los campos.

El esquema de la siguiente página ilustra este proceso.

Página 2
Curso de Programación en Python – Sesión 4: Tratamiento de Ficheros y Fechas

articulos.txt
Zapatilla Running Nike-8-75.0-12/09/2018

Chandal Adidas-2-89.95-1/10/2018

Raqueta Wilson-1-120-5/03/2018

...

es_obsoleto(…)

SI NO

Para realizar este proceso, o bien podemos utilzar el método readlines() y volcar
todos los Registros en una Lista y después recorrer o iterar sobre la lista, o bien
utilzar el método readline() e ir volcando cada Registro en una cadena, con lo cual
iteraremos sobre el fichero artículos.txt. Recordemos que para separar cada campo
de la cadena tenemos que utilzar la función split(...) que explicábamos en la página
20 de esta sesión.
Finalmente no debemos olvidar cerrar los 3 ficheros.

Se proporciona como material de la práctica el fichero articulos.txt con datos de


artículos de prueba.

Página 3
Curso de Programación en Python – Sesión 4: Tratamiento de Ficheros y Fechas

El nombre que tendrá el programa que tendremos que entregar será:


articulos_obsoletos.py.
A continuación, se indica como debería ser el esqueleto del programa para realizar
esta actividad obligatoria.

# Definición de las Funciones que se utilizarán en el Programa Principal


def introduce_dias_obsolescencia():

def es_obsoleto(…):

# Programa Principal
# Apertura de los 3 ficheros que utilizará el programa

# Llamamos a la función introduce_dias_obsolescencia()

# Proceso para recorrer articulos.txt y generar los ficheros: articulos_obsoletos y
# articulos_ok
...
# Cerramos los ficheros
...

Página 4

También podría gustarte