Wie starte ich ein Python-Skript in C#?

Diese Art von Frage gestellt wurde, bevor Sie in unterschiedlichem Grad, aber ich empfinde es wurde nicht beantwortet auf übersichtliche Weise und so bitte ich Sie es erneut.

Ich möchten, führen Sie ein Skript in Python. Sagen wir mal so:

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

Welche bekommt einen Speicherort der Datei, liest es, und gibt dann Ihren Inhalt. Nicht so kompliziert.

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

Dies ist, was ich jetzt habe:

    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 den pass der code.py Lage als cmd und die filename Lage als args es funktioniert nicht. Mir wurde gesagt, ich sollte pass python.exe als cmd, und dann code.py filename als args.

Bin ich auf der Suche für eine Weile jetzt, und kann nur Menschen finden, die darauf hindeutet, zu verwenden, IronPython oder so. Aber es muss doch eine Möglichkeit zu nennen, ein Python-Skript in C#.

Einige Klarstellungen:

Muss ich laufen, es von C#, ich muss erfassen Sie die Ausgabe, und ich kann nicht mit IronPython oder irgendetwas anderes. Was hack Sie werden in Ordnung sein.

P. S.: Die eigentlichen Python-code bei mir läuft, ist viel komplexer als diese, und es gibt Ausgaben, die ich brauche in C#, und das C# - code werden ständig Aufruf das Python.

Behaupten, das ist mein code:

    private void get_vals()
    {
        for (int i = 0; i < 100; i++)
        {
            run_cmd("code.py", i);
        }
    }
Hat der C# - code haben, rufen Sie das Python-Skript oder ist es OK, wenn (wie du sagtest am Ende) Sie rufen das python-interpreter, dann läuft das Skript?
Ist es Ihnen gestattet, IronPython?
das ist okay, ich muss nur in der Lage sein, um es durch c# und fangen Sie die Ausgabe.

InformationsquelleAutor Inbar Rose | 2012-08-02

Schreibe einen Kommentar