Python scriptini C# ile tetiklemek için birkaç farklı yöntem bulunmaktadır.
- Process Sınıfı Kullanarak Çalıştırmak: C# uygulamanızda
System.Diagnostics
ad alanını kullanarak Python scriptini başlatmak içinProcess
sınıfını kullanabilirsiniz. Örneğin:
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = "python";
start.Arguments = "path_to_your_python_script.py";
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
using (Process process = Process.Start(start))
{
using (System.IO.StreamReader reader = process.StandardOutput)
{
string result = reader.ReadToEnd();
Console.Write(result);
}
}
}
}
- IronPython Kütüphanesi: IronPython, C# ile Python arasında entegrasyon sağlayan bir kütüphanedir. Bu kütüphane sayesinde C# kodlarınız içerisinde doğrudan Python scriptlerini çalıştırabilirsiniz. Bunun için öncelikle
IronPython
kütüphanesini projenize eklemelisiniz. - PythonNet Kütüphanesi: PythonNet, .NET uygulamalarının Python kodlarını çalıştırabilmesi için bir köprü sağlar. Bu kütüphane sayesinde C# kodlarınız içerisinde Python scriptlerini çalıştırabilirsiniz.
İhtiyacınıza ve projenizin gereksinimlerine bağlı olarak, uygun olan yöntemi seçebilirsiniz. Bu yöntemlerden herhangi biriyle Python scriptlerini C# uygulamanız içinde başlatabilir ve yönetebilirsiniz.
Python scriptine parametre göndermek için, ProcessStartInfo
nesnesi kullanılarak Arguments
özelliğini kullanabilirsiniz. Örneğin, python_script.py
adlı bir Python betiğine iki parametre göndermek istediğinizi varsayalım. Aşağıda bunu nasıl yapabileceğinize dair bir örnek bulabilirsiniz:
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
string param1 = "value1";
string param2 = "value2";
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = "python";
start.Arguments = string.Format("path_to_your_python_script.py {0} {1}", param1, param2);
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
using (Process process = Process.Start(start))
{
using (System.IO.StreamReader reader = process.StandardOutput)
{
string result = reader.ReadToEnd();
Console.Write(result);
}
}
}
}
Bu örnekte, param1
ve param2
isimli iki parametre tanımlanmıştır. Ardından, ProcessStartInfo
nesnesinin Arguments
özelliği kullanılarak Python scriptine bu parametreler iletilir. string.Format
fonksiyonu ile Python scriptine gönderilecek argümanlar oluşturulur. Python scripti bu argümanları sys.argv
kullanarak alabilir.