Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

161
Visualizações
Función de Python para imprimir un punto en la consola mientras se ejecuta la llamada HTTP

Soy algo nuevo en Python. He buscado pero no puedo encontrar una respuesta que se ajuste exactamente a lo que estoy buscando.

Tengo una función que realiza una llamada HTTP utilizando el paquete de solicitudes. Me gustaría imprimir un '.' a la pantalla (o cualquier carácter) diga cada 10 segundos mientras se ejecutan las solicitudes HTTP, y deja de imprimir cuando finaliza. Entonces algo como:

 def make_call: rsp = requests.Post(url, data=file) while requests.Post is executing print('.')

Por supuesto, el código anterior es solo un pseudocódigo, pero espero que ilustre lo que espero lograr.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Cada llamada de función del módulo de requests se bloquea, por lo que su programa espera hasta que la función devuelva un valor. La solución más simple es usar la biblioteca de threading incorporada que ya se sugirió. El uso de este módulo le permite usar código "paralelismo"*. En su ejemplo, necesita un hilo para la solicitud que se bloqueará hasta que finalice la solicitud y el otro para imprimir.

Si desea obtener más información sobre soluciones más avanzadas, consulte esta respuesta https://stackoverflow.com/a/14246030/17726897

Así es como puede lograr la funcionalidad deseada utilizando el módulo de threading

 def print_function(stop_event): while not stop_event.is_set(): print(".") sleep(10) should_stop = threading.Event() thread = threading.Thread(target=print_function, args=[should_stop]) thread.start() # start the printing before the request rsp = requests.Post(url, data=file) # start the requests which blocks the main thread but not the printing thread should_stop.set() # request finished, signal the printing thread to stop thread.join() # wait for the thread to stop # handle response

* el paralelismo está entre comillas debido a algo como el Global Interpreter Lock (GIL). Las declaraciones de código de diferentes subprocesos no se ejecutan al mismo tiempo.

over 4 years ago · Santiago Trujillo Relatório

0

Realmente no obtengo lo que busca, pero si desea que se procesen dos cosas al mismo tiempo, puede usar el módulo de multithreading múltiples. Ejemplo:

 import threading import requests from time import sleep def make_Request(): while True: req = requests.post(url, data=file) sleep(10) makeRequestThread = threading.Thread(target=make_Request) makeRequestThread.start() while True: print("I used multi threading to do two tasks at a same time") sleep(10)

o puede usar un módulo de programación muy simple para programar sus tareas de una manera fácil

documentos: https://schedule.readthedocs.io/en/stable/#when-not-to-use-schedule

over 4 years ago · Santiago Trujillo Relatório

0

import threading import requests from time import sleep #### Function print and stop when answer comes ### def Print_Every_10_seconds(stop_event): while not stop_event.is_set(): print(".") sleep(10) ### Separate flow of execution ### Stop = threading.Event() thread = threading.Thread(target=Print_Every_10_seconds, args=[Stop]) ### Before the request, the thread starts printing ### thread.start() ### Blocking of the main thread (the print thread continues) ### Block_thread_1 = requests.Post(url, data=file) ### Thread stops ### Stop.set() thread.join()
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda