首頁 >後端開發 >Python教學 >如何從 C# 運行 Python 腳本並捕獲其輸出?

如何從 C# 運行 Python 腳本並捕獲其輸出?

Susan Sarandon
Susan Sarandon原創
2024-12-09 15:41:12750瀏覽

How Can I Run Python Scripts from C# and Capture Their Output?

從 C# 執行 Python 腳本:綜合指南

在跨語言合作領域,從 C# 執行 Python 腳本的問題經常出現。儘管試圖提供簡潔的答案,但細節有時仍然難以捉摸。讓我們深入研究細節並闡明這個過程。

主要挑戰在於建立 Python 執行的命令列參數。首先,您必須提供 Python 執行檔的完整路徑作為 ProcessStartInfo 中的 FileName。接下來,透過合併腳本路徑和要處理的檔案來組裝 Arguments 字串。

要擷取 Python 腳本的輸出,請將 UseShellExecute 設定為 false。這也可以使用 RedirectStandardOutput。

調整後的程式碼:

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);
        }
    }
}

在此程式碼中,FileName 屬性指向實際的 Python 執行檔。 Arguments 字串連接腳本路徑和 Python 程式碼要讀取的檔案。

進一步說明:

  • 而不是硬編碼 Python 可執行路徑,考慮使用全域安裝的 Python 解釋器。
  • Arguments 字串的格式可能會有所不同,具體取決於您正在執行的特定 Python 腳本。有關詳細信息,請參閱 Python 文件。
  • 這種方法無需使用 IronPython 或其他外部工具。它允許 C# 和 Python 之間直接通信,捕獲輸出並實現持續交互。

以上是如何從 C# 運行 Python 腳本並捕獲其輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn