Aufrufen von Python-Skripten aus C#
Es ist möglich, Python-Skripte aus C# ohne die Verwendung externer Bibliotheken wie IronPython auszuführen. So können Sie dies angehen:
Betrachten Sie das folgende Python-Skript (code.py):
if __name__ == '__main__': with open(sys.argv[1], 'r') as f: s = f.read() print(s)
Um dieses Skript in C# auszuführen, passen Sie Ihre run_cmd-Methode wie folgt an:
private void run_cmd(string cmd, string args) { ProcessStartInfo start = new ProcessStartInfo(); // Specify the complete path to python.exe start.FileName = "my/full/path/to/python.exe"; // Build the argument string with the script and file paths start.Arguments = string.Format("{0} {1}", cmd, args); // Disable using the shell to gain more control start.UseShellExecute = false; // Enable standard output redirection to capture the script's output start.RedirectStandardOutput = true; using (Process process = Process.Start(start)) { using (StreamReader reader = process.StandardOutput) { string result = reader.ReadToEnd(); Console.Write(result); } } }
Indem Sie UseShellExecute auf „false“ setzen, erhalten Sie die Kontrolle über den Befehl und die Argumente, die an Python übergeben werden. Sie müssen den vollständigen Pfad zu python.exe als Dateinamen angeben und die Argumentzeichenfolge so erstellen, dass sie sowohl den Skriptpfad (cmd) als auch den zu lesenden Dateipfad (args) enthält.
Beachten Sie, dass das Python-Skript kontinuierlich aufgerufen wird C# kann die Leistung beeinträchtigen, da jedes Mal ein neuer Prozess erstellt werden muss. Wenn Ihr Skript viel Laufzeit benötigt, sollten Sie erwägen, Ihren Ansatz zu optimieren oder einen geeigneteren Mechanismus für die prozessübergreifende Kommunikation zu verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich Python-Skripte aus C# ohne IronPython ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!