Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich ein Python-Skript in C# erfolgreich ausführen, ohne die Shell zu verwenden?

Wie kann ich ein Python-Skript in C# erfolgreich ausführen, ohne die Shell zu verwenden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-25 06:33:20598Durchsuche

How to Successfully Run a Python Script from C# Without Using the Shell?

So führen Sie Python-Skripte aus C# aus

Sie möchten ein Python-Skript aus Ihrer C#-Anwendung heraus aufrufen. Das Skript enthält eine einfache Funktion zum Lesen und Drucken von Dateien.

Ihr erster Versuch bestand darin, das Python-Skript über die Befehlszeile aufzurufen, aber die Verwendung von UseShellExecute = false verhinderte, dass die Ausführung erfolgreich abgeschlossen werden konnte.

Zur Abhilfe Um dieses Problem zu lösen, müssen Sie:

  • UseShellExecute = false festlegen, um die Verwendung von zu deaktivieren Shell.
  • Geben Sie den vollständigen Pfad zur ausführbaren Python-Datei als Dateiname an.
  • Konstruieren Sie die Argumentzeichenfolge so, dass sie sowohl den Skriptnamen als auch die zu lesende Datei enthält.

Hier ist der korrigierte Code:

private void run_cmd(string cmd, string args)
{
    ProcessStartInfo start = new ProcessStartInfo();
    start.FileName = "my/full/path/to/python.exe";
    start.Arguments = string.Format("{0} {1}", cmd, 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);
        }
    }
}

Mit dieser Änderung sollten Sie in der Lage sein, das Python-Skript aus Ihrer C#-Anwendung auszuführen und Erfassen Sie die Ausgabe.

Das obige ist der detaillierte Inhalt vonWie kann ich ein Python-Skript in C# erfolgreich ausführen, ohne die Shell zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn