Bash One-Liner, um mehrere Prozesse zu öffnen und eine Python-Funktion in jeder Parallelverarbeitung des armen Mannes auszuführen

320
Canaryyellow

Ich habe eine Python-Datei wie my_functions.py und in dieser Datei befindet sich eine Funktion

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

Gibt es einen bash-Einzeiler, der N-Python-Sitzungen öffnet und diese Funktion mit den angegebenen Argumenten a und b ausführt? Ich denke darüber nach, dies für die Parallelverarbeitung eines armen Mannes zu verwenden, da in der Funktion etwas Zufälliges zu sehen ist. Alle Anrufe würden nicht dasselbe tun, selbst wenn sie die gleichen Argumente a und b haben.

0

1 Antwort auf die Frage

1
Alain Tésio

Wenn bash das Python-Skript mit Argumenten ausführen und die Funktion func ausführen muss, müssen Sie zunächst einen __main__Abschnitt am Ende Ihrer .py-Datei hinzufügen. Beispiel:

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

Sie können das Ergebnis von func in stdout ausgeben, als Skript-Exit-Code verwenden, ...

Dann kann ein Bash-Skript "python myfunc.py 12 42 &" ausführen, um die Funktion auszuführen. "&" bedeutet, dass das Programm im Hintergrund läuft.