最近有群友咨詢C#如何調用Python?小編嘗試Python.NET過程中遭遇的版本相容性和環境配置難題,小編決定尋找一個更為簡單、穩定且對初學者友好的解決方案。小編搜索一番,除了Python.NET之外,還有其他途徑能夠幫助我們輕鬆地在C#項目調用Python腳本,那就是通過命令行調用,使用 Sy ...
最近有群友咨詢C#如何調用Python?小編嘗試Python.NET過程中遭遇的版本相容性和環境配置難題,小編決定尋找一個更為簡單、穩定且對初學者友好的解決方案。小編搜索一番,除了Python.NET之外,還有其他途徑能夠幫助我們輕鬆地在C#項目調用Python腳本,那就是通過命令行調用,使用 System.Diagnostics.Process 類可以啟動 Python 進程,並通過命令行參數傳遞腳本路徑等信息。調用流程如下:
1、環境準備
在操作系統中安裝好python,最好3.0以上版本;然後新建一個.NET8控制台程式,不需要引用任何組件;最後新建一個python文件用來測試,用txt新建並另存為py文件就可以。代碼如下:
#定義一個數字列表
numbers = [10, 20, 30, 40, 50]
#調用內置函數進行聚合
sum_of_numbers = sum(numbers) # 求和
print('上面數組求和為:',sum_of_numbers)
print('歡迎關註公眾號:Dotnet開發跳槽!');
2、通過命令行調用Python
此方法的核心思想是,C#程式通過System.Diagnostics命名空間下的Process類來啟動Python解釋器,並向其傳遞Python腳本的路徑及必要的參數。代碼如下:
using System.Diagnostics;
using (Process process = new Process())
{
process.StartInfo.FileName = "python";
process.StartInfo.Arguments = "E:\\lea\\python\\demo.py";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
string result = process.StandardOutput.ReadToEnd();
process.WaitForExit();
Console.WriteLine(result);
}
效果如下:
優勢與局限
優勢:該方法簡單直觀,對環境的依賴較少,不需要安裝額外的庫或組件,特別適用於環境配置複雜或版本相容性問題突出的情況。
局限:相比直接的庫集成(如Python.NET),這種方法犧牲了一定的性能,特別是在頻繁的交互場景下,每次調用都需要啟動新的Python進程。此外,數據交換主要通過文本輸出,處理大量或複雜數據結構時不夠高效。大家使用Python.NET成功沒有?歡迎分享經驗。
結語
本文講述了C#如何用最簡單調用Python的方法,通過命令行調用Python。它能夠快速搭建起C#與Python之間的通信橋梁,尤其適合快速驗證概念或進行初步集成測試。在大模型時代,Python學習的必要性增大,尤其是.NET開發,C#中調用Python大大降低了學習成本。對於在C#中調用Python大家還有什麼好的方法,歡迎留言討論。
來源公眾號:DotNet開發跳槽