Como se trata de uma extração semanal, fiz algumas melhorias no código e as apresento aqui como sugestão e contribuição!
from urllib.parse import quote, urljoin # Use urljoin para combinar URLs de forma segura
import os
from os.path import join
import pandas as pd
from datetime import datetime, timedelta
# Data atual
hoje = datetime.now()
# Calcula o primeiro dia da semana (segunda-feira)
primeiro_dia_semana = hoje - timedelta(days=hoje.weekday())
# Calcula o último dia da semana (domingo)
ultimo_dia_semana = primeiro_dia_semana + timedelta(days=6)
# Formatando as datas
primeiro_dia_semana = primeiro_dia_semana.strftime('%Y-%m-%d')
ultimo_dia_semana = ultimo_dia_semana.strftime('%Y-%m-%d')
city = 'Jaraguá do Sul, SC'
key = 'XXX'
# Codifica o nome da cidade
city_encoded = quote(city)
# Monta a URL usando urljoin
base_url = 'https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/'
URL = urljoin(base_url, f'{city_encoded}/{primeiro_dia_semana}/{ultimo_dia_semana}?unitGroup=metric&include=days&key={key}&contentType=csv')
dados = pd.read_csv(URL)
print(dados)
file_path = f'C:/Dev/000_AB/airflow_alura/semana_{primeiro_dia_semana}/'
# Verifica se o diretório existe antes de criá-lo
if not os.path.exists(file_path):
os.mkdir(file_path)
dados.to_csv(file_path + 'dados_brutos.csv')
dados[['datetime', 'tempmin', 'temp', 'tempmax']].to_csv(file_path + 'temperaturas.csv')
dados[['datetime', 'description', 'icon']].to_csv(file_path + 'condicoes.csv')