@@ -104,19 +104,39 @@ class ListaDeTareas:
104
104
if tiempo_restante == timedelta(days=1):
105
105
print(f'Recordatorio: La tarea "{tarea.nombre}" está próxima a su fecha máxima.')
106
106
107
+ def guardar_tareas_en_archivo(self, nombre_archivo):
108
+ with open(nombre_archivo, 'w') as file:
109
+ for tarea in self.tareas:
110
+ file.write(str(tarea) + '\n\n')
111
+
107
112
def main():
108
113
print("¡Bienvenida a la Lista de Tareas de MG! Vamos a por ello.")
109
114
lista_de_tareas = ListaDeTareas()
110
115
116
+ nombre_archivo = "tareas.txt"
117
+
118
+ # Verificar si hay un archivo de tareas existente
119
+ try:
120
+ with open(nombre_archivo, 'r') as file:
121
+ tareas_copiadas = file.read()
122
+ print("Se han encontrado tareas previamente guardadas. ¿Deseas recuperarlas?")
123
+ recuperar = input("Introduce 's' para sí, o 'n' para no: ")
124
+ if recuperar.lower() == 's':
125
+ print("\nTareas recuperadas:")
126
+ print(tareas_copiadas)
127
+ except FileNotFoundError:
128
+ print("No se encontró un archivo de tareas previamente guardado.")
129
+
111
130
while True:
112
131
print("\n1. Nueva Tarea")
113
132
print("2. Nueva Tarea Simple")
114
133
print("3. Eliminar Tarea")
115
134
print("4. Completar Tarea")
116
135
print("5. Visualizar Tareas Pendientes")
117
136
print("6. Visualizar Tareas Realizadas")
118
- print("7. Salir")
119
- opcion = input("Introduce tu elección (1-7): ")
137
+ print("7. Guardar Tareas en Archivo")
138
+ print("8. Salir")
139
+ opcion = input("Introduce tu elección (1-8): ")
120
140
121
141
if opcion == '1':
122
142
nombre = input("Introduce el nombre de la tarea: ")
@@ -125,12 +145,12 @@ def main():
125
145
fechamax_str = input("Introduce la fecha máxima (opcional, formato: dd/mm/yyyy): ")
126
146
try:
127
147
if fechamax_str:
128
- fechamax = datetime.strptime(fechamax_str, "%d/%m/%Y")
148
+ fechamax = datetime.strptime(fechamax_str,"%d/%m/%Y")
129
149
else:
130
150
fechamax = None
131
151
except ValueError:
132
152
print("Fecha inválida. El formato debe ser dd/mm/yyyy.")
133
- continue # Mover la instrucción continue aquí
153
+ continue
134
154
135
155
tarea = Tarea(nombre, categoria, prioridad, fechamax)
136
156
lista_de_tareas.nueva_tarea(tarea)
@@ -147,10 +167,13 @@ def main():
147
167
elif opcion == '6':
148
168
lista_de_tareas.mostrar_tareas_realizadas()
149
169
elif opcion == '7':
170
+ lista_de_tareas.guardar_tareas_en_archivo(nombre_archivo)
171
+ print("Tareas guardadas en el archivo 'tareas.txt'.")
172
+ elif opcion == '8':
150
173
print("Saliendo, hasta luego...")
151
174
break
152
175
else:
153
- print("Opción inexistente, introduce una opción válida. ¡A por ello! ")
176
+ print("Opción inexistente, introduce una opción válida.")
154
177
155
178
if __name__ == "__main__":
156
179
main()
0 commit comments