從 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中文網其他相關文章!