Bash one-liner, чтобы открыть несколько процессов и выполнить функцию python в каждом - параллельная обработка бедняков

244
Canaryyellow

У меня есть файл Python, как my_functions.py и в этом файле есть функция

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

Есть ли bash с одним строком, который бы открывал N сессий Python и запускал эту функцию с указанными аргументами a и b? Я думаю об использовании этого для параллельной обработки какого-то бедняка, так как в func есть некоторая случайность, все вызовы не будут делать одно и то же даже при одинаковых аргументах a и b.

0

1 ответ на вопрос

1
Alain Tésio

Во-первых, если bash должен запустить скрипт python с аргументами и выполнить функцию func, вам нужно добавить __main__раздел в конец вашего файла .py, например:

if __name__ == "__main__": импорт системы func (sys.argv [1], sys.argv [2]) 

Вы можете напечатать результат func в stdout, использовать его как код завершения скрипта, ...

Затем скрипт bash может просто выполнить «python myfunc.py 12 42 &» для запуска функции. «&» означает, что программа работает в фоновом режиме.

Похожие вопросы