首頁 >後端開發 >Python教學 >如何在沒有 IronPython 的情況下從 C# 執行 Python 腳本?

如何在沒有 IronPython 的情況下從 C# 執行 Python 腳本?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-15 16:39:11346瀏覽

How Can I Execute Python Scripts from C# Without IronPython?

從 C# 呼叫 Python 腳本

可以從 C# 執行 Python 腳本,而無需使用 IronPython 等外部函式庫。解決方法如下:

考慮以下Python 腳本(code.py):

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

要在C# 中執行此腳本,請如下調整run_cmd 方法:

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

透過將UseShellExecute 設定為false,您可以控制傳遞給Python 的指令和參數。您必須提供 python.exe 的完整路徑作為 FileName 並建構參數字串以包含腳本路徑 (cmd) 和要讀取的檔案路徑 (args)。

請注意,連續從以下位置呼叫 Python 腳本由於每次創建新進程的開銷,C# 可能會影響效能。如果您的腳本需要大量運行時間,請考慮最佳化您的方法或使用更合適的進程間通訊機制。

以上是如何在沒有 IronPython 的情況下從 C# 執行 Python 腳本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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