what's the number of times the letter "o" appears in:
q: python - loop através de intervalo de datas bom dia,
sou relativamente novo em python, e, preciso de uma luz para um loop com datas.
trata-se de um projeto com selenium, preciso fazer buscas em determinado site através de um intervalo de datas.
o resultado dessa busca trará informações limitadas à 5000 registros.
então basicamente, eu havia pensado em atribuir data inicial e final à duas variáveis e conforme fosse encontrando o valor de registro igual a 5000, fosse subtraindo 3 dias da data final, até que chegasse em um intervalo de datas em que o resultado fosse inferior a 5000.
até essa etapa, ok. porém meu problema é como retornar a busca para os dias em que foram subtraídos anteriormente, necessitando um novo loop por eles.
por exemplo, digamos que minha data inicial e final seja 01/07/2022 e 31/07/2022 respectivamente, e que o primeiro intervalo com a quantidade de registros buscados seja 01/07/2022 a 07/07/2022. minha dificuldade está em como continuar o loop entre 08/07/2022 a 31/07/2022 onde existe a possibilidade de novamente ter que subtrair de 3 em 3 dias a data final.
abaixo o código
#criando uma lista com as datas
data_inicial = '01/07/2022'
data_final = '31/07/2022'


dran = pd.date_range(start = datetime.strptime(data_inicial, '%d/%m/%y').date(), 

       end =datetime.strptime(data_final, '%d/%m/%y').date(), periods = 31)   

res = dran.strftime('%d/%m/%y')

datas = []
for i in res:
    datas.append(i)

tamanho_periodo = len(datas)-1
novo_tamanho_periodo = tamanho_periodo
print(f'data inicial é {datas[0]} e a data_final é {datas[tamanho_periodo]}')


registros = 27000

ind = 0


while registros >= 5000:
    
    #subtrai 3 dias do valor da data final
    novo_tamanho_periodo = novo_tamanho_periodo - 3
    
    nova_data_final = datas[novo_tamanho_periodo]
    #simulando nova consulta
    registros -= 3000
    ind += 3
    print(f'data inicial é {datas[0]} e a data_final é {nova_data_final}')
    
print(f'data inicial é {datas[tamanho_periodo - ind + 1]} e a data_final é {data_final}')

o meu retorno nesse exemplo:
data inicial é 01/07/2022 e a data_final é 31/07/2022, número total de registros são 27000
data inicial é 01/07/2022 e a data_final é 28/07/2022, número total de registros são 24000
data inicial é 01/07/2022 e a data_final é 25/07/2022, número total de registros são 21000
data inicial é 01/07/2022 e a data_final é 22/07/2022, número total de registros são 18000
data inicial é 01/07/2022 e a data_final é 19/07/2022, número total de registros são 15000
data inicial é 01/07/2022 e a data_final é 16/07/2022, número total de registros são 12000
data inicial é 01/07/2022 e a data_final é 13/07/2022, número total de registros são 9000
data inicial é 01/07/2022 e a data_final é 10/07/2022, número total de registros são 6000
data inicial é 01/07/2022 e a data_final é 07/07/2022, número total de registros são 3000

data inicial é 08/07/2022 e a data_final é 31/07/2022, número total de registros são 20000

se alguém puder me ajudar, dizer se há como fazer esse loop sem que precise adicionar um while pra cada vez que os registros cheguem a 5000. acredito que deva ter alguma forma mais inteligente de fazer isso, mas não consegui pensar no momento rsrsrs
é meu primeiro post aqui, caso não tenha ficado no padrão, adequarei.

a: isso me parece um caso de loop dentro de loop. o loop mais externo checaria se a data inicial é igual a data final, a cada vez q executá-lo, vc atualiza a data inicial pra ser datas[tamanho_periodo - ind + 1]. dentro desse loop teria o bloco de while que você escreveu. creio que o caminho pra solução esteja aí (não tô dando a solução de bandeja pq vc parece estar aprendendo)
um caminho interessante seria usar flags pra checar se é um determinado caso

user
The text includes two hundred and twenty-four "o"s in total.
assistant