En este paso, aprenderás a crear el archivo de modelo de informe semanal para la última semana, comenzando desde el lunes de la semana que contiene la fecha de finalización ajustada.
- En la función
create
, agregue el siguiente código después de ajustar la fecha de finalización:
def create(start_date, end_date):
## Crea la carpeta "semanal"
os.makedirs("semanal", exist_ok=True)
## Encuentra el viernes de la semana que contiene la fecha de inicio
#... (pasos anteriores)
## Recorre el rango de fechas comenzando desde el viernes de la semana de la fecha de inicio
#... (pasos anteriores)
## Ajusta la fecha de finalización al viernes anterior si cae un sábado o domingo
#... (paso anterior)
## Crea una presentación para la semana de lunes a la fecha de finalización ajustada
## Encuentra el lunes de la semana que contiene la fecha de finalización ajustada
current_date = end_date
## Construye el nombre del archivo
file_name = current_date.strftime("%Y-%m-%d") + ".txt"
file_path = os.path.join("semanal", file_name)
while current_date.weekday()!= 0: ## 0 representa lunes
current_date -= datetime.timedelta(days=1)
## Escribe el contenido del archivo
with open(file_path, "w") as file:
## Escribe el rango de días hábiles de lunes a la fecha de finalización ajustada (excluyendo los fines de semana)
date = current_date
while date <= end_date:
if date.weekday() < 5: ## 0 representa lunes, 4 representa viernes
file.write(date.strftime("%Y-%m-%d") + "\n")
date += datetime.timedelta(days=1)
El código primero encuentra el lunes de la semana que contiene la fecha de finalización ajustada. Luego construye el nombre del archivo para el modelo de informe semanal final y abre el archivo para escritura.
Dentro del archivo, el código escribe el rango de días hábiles de lunes a la fecha de finalización ajustada, excluyendo los fines de semana.
Esto asegura que el archivo de modelo de informe semanal final solo incluya los días hábiles del lunes de la semana que contiene la fecha de finalización ajustada hasta la fecha de finalización ajustada misma.
Con los pasos anteriores, has completado la implementación de la función create
en el archivo report.py
, que genera los modelos de informe semanal basados en las fechas de inicio y finalización proporcionadas.
- Para generar los modelos de informe semanal, ejecuta el script
report.py
con el comando python report.py
en tu terminal. El script creará los modelos de informe semanal basados en las fechas de inicio y finalización proporcionadas.
A continuación se proporcionan algunos ejemplos:
## ejemplo 1
## start_date = datetime.date(2023,10,1) Domingo
## end_date = datetime.date(2023,10,16) Lunes
$ ls semanal
2023-10-06.txt 2023-10-13.txt 2023-10-16.txt
$ cat 2023-10-06.txt
2023-10-02
2023-10-03
2023-10-04
2023-10-05
2023-10-06
$ cat 2023-10-16.txt
2023-10-16
## ejemplo 2
## start_date = datetime.date(2023,9,10) Domingo
## end_date = datetime.date(2023,9,24) Domingo
$ ls semanal
2023-09-15.txt 2023-09-22.txt
$ cat 2023-09-15.txt
2023-09-11
2023-09-12
2023-09-13
2023-09-14
2023-09-15
$ cat 2023-09-22.txt
2023-09-18
2023-09-19
2023-09-20
2023-09-21
2023-09-22