Wie führe ich ein Python-Skript in C # aus?

Diese Art von Frage wurde bereits in unterschiedlichem Maße gestellt, aber ich habe das Gefühl, dass sie nicht präzise beantwortet wurde, und so stelle ich sie noch einmal.

Ich möchte ein Skript in Python ausführen. Sagen wir, es ist das:

if __name__ == '__main__':
    with open(sys.argv[1], 'r') as f:
        s = f.read()
    print s

Welches bekommt einen Speicherort, liest es, druckt dann seinen Inhalt. Nicht so kompliziert.

Okay, wie führe ich das in C # aus?

Das habe ich jetzt:

    private void run_cmd(string cmd, string args)
    {
        ProcessStartInfo start = new ProcessStartInfo();
        start.FileName = cmd;
        start.Arguments = args;
        start.UseShellExecute = false;
        start.RedirectStandardOutput = true;
        using (Process process = Process.Start(start))
        {
            using (StreamReader reader = process.StandardOutput)
            {
                string result = reader.ReadToEnd();
                Console.Write(result);
            }
        }
    }

Wenn ich diecode.py Standort alscmd und dasfilename Standort alsargs es funktioniert nicht Mir wurde gesagt, ich solle gehenpython.exe als diecmd, und danncode.py filename als dieargs.

Ich habe eine Weile gesucht und kann nur Leute finden, die vorschlagen, IronPython oder ähnliches zu verwenden. Es muss jedoch eine Möglichkeit geben, ein Python-Skript in C # aufzurufen.

Einige Klarstellungen:

Ich muss es von C # ausführen, ich muss die Ausgabe erfassen und ich kann IronPython oder nichts anderes verwenden. Was auch immer Sie hacken, es wird alles gut gehen.

PS: Der aktuelle Python-Code, den ich verwende, ist viel komplexer als dieser. Er gibt die Ausgabe zurück, die ich in C # benötige, und der C # -Code ruft ständig Python auf.

Stell dir vor, das ist mein Code:

    private void get_vals()
    {
        for (int i = 0; i < 100; i++)
        {
            run_cmd("code.py", i);
        }
    }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage