"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como executar comandos externos de forma assíncrona em Python?

Como executar comandos externos de forma assíncrona em Python?

Publicado em 2024-11-05
Navegar:230

How to Execute External Commands Asynchronously in Python?

Executando comandos externos de forma assíncrona no Python

Executar comandos externos de forma assíncrona é um requisito comum em cenários de script. Em Python, isso pode ser alcançado por meio de várias abordagens.

Uma opção é usar os.system, que permite executar comandos sem bloqueio, anexando um e comercial (&) no final. No entanto, este método é considerado obsoleto e não recomendado devido a possíveis problemas com a interação do shell.

Uma abordagem mais ideal é usar subprocess.Popen, que fornece uma API mais abrangente e robusta para gerenciar processos externos. Com Popen, os comandos podem ser iniciados de forma assíncrona, permitindo que o script Python continue a execução enquanto o comando externo é executado em segundo plano.

from subprocess import Popen
p = Popen(['watch', 'ls'])  # something long running
# ... do other stuff while subprocess is running
p.terminate()

Neste exemplo, a instância Popen é criada, passando o comando e seus argumentos. O script Python pode então prosseguir com outras tarefas enquanto o comando externo é executado de forma assíncrona. Posteriormente, a instância Popen pode ser consultada quanto ao status (por exemplo, usando poll()), comunicada (por exemplo, via comunicado()) ou encerrada.

Declaração de lançamento Este artigo foi reimpresso em: 1729582514 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3