15.12.2022 Views

Python Eficaz

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

exemplo de código a seguir, esperamos que eles sejam encerrados para obter

seus dados de saída:

for proc in procs:

out, err = proc.communicate()

print(out[-10:])

>>>

b'o4,G\x91\x95\xfe\xa0\xaa\xb7'

b'\x0b\x01\\\xb1\xb7\xfb\xb2C\xe1b'

b'ds\xc5\xf4;j\x1f\xd0c-'

Podemos também criar cadeias de processos paralelos da mesma forma que nos

pipes do UNIX, conectando a saída de um processo-filho à entrada do próximo,

e assim sucessivamente. O código a seguir mostra uma função que inicia um

processo-filho, e este chama a ferramenta de linha de comando md5. Por sua

vez, o md5 consome um fluxo de dados de entrada:

def run_md5(input_stdin):

proc = subprocess.Popen(

['md5'],

stdin=input_stdin,

stdout=subprocess.PIPE)

return proc

Nota

O módulo nativo hashlib possui uma função de md5, portanto executar

processos dessa maneira nem sempre é necessário. O objetivo aqui é

demonstrar como os subprocessos podem ser encadeados com pipe,

conectando suas entradas e saídas como se fossem peças encaixáveis.

Agora podemos iniciar um conjunto de processos openssl para criptografar

dados, bem como outro conjunto de processos para criar hashes em formato md5

a partir da saída já criptografada.

input_procs = []

hash_procs = []

for _ in range(3):

data = os.urandom(10)

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!