Bash one-liner para abrir vários processos e executar uma função python em cada - processamento paralelo do homem pobre

0

Eu tenho um arquivo python como my_functions.py e dentro desse arquivo é uma função

def func(a,b):
      result = does_some_stuff(a,b)
      return result

Existe um bash one-liner que abriria sessões N python e executaria essa função com os argumentos especificados aeb? Estou pensando em usar isso para o processamento paralelo de algum homem pobre, já que há alguma aleatoriedade em todas as chamadas não faria a mesma coisa, mesmo com os mesmos argumentos a e b.

    
por Canaryyellow 15.07.2016 / 01:49

1 resposta

1

Primeiro, se o bash precisar executar o script python com argumentos e executar a função func, você precisará adicionar uma seção __main__ no final do seu arquivo .py, por exemplo:

if __name__ == "__main__":
    import sys
    func(sys.argv[1], sys.argv[2])

Você pode querer imprimir o resultado de func para stdout, usá-lo como o código de saída do script, ...

Em seguida, um script bash pode simplesmente executar "python myfunc.py 12 42 &" para executar a função. "&" significa que o programa é executado em segundo plano.

    
por 27.07.2016 / 17:09