Python Script’ lerinin C# ile çalıştırılması

Yorum bırakın

18/12/2011 tarafından electrocoder

Python Script’ lerinin C# ile çalıştırılması (Execute Python Script in C#)

Çogu programcının istiyebileceği bir konudur esasında. Bilgisayar dillerinin birbirleri ile uyum içinde çalışması. Evet konumuz Python ile .Net platformunun güzide 🙂 dillerinden olan C# ın beraber çalışması. Bu nasıl mı olacak? C# ile yazdığımız bir programımızdan *.py script ini çalıştıracağız ve Python dosyamızın çıktılarını yine C# içinde göreceğiz. Bu iş için elinizde Python veya C# editörünüz yoksa ilgili linklerden indirebilirsiniz.

Download Python 3.1.2
C# Download

## Unutmadan söyliyeyim. Bu yapacağımız işlemler .Net içerisinde bulunan IronPython ile denenmemiştir. ##

# Guido van Rossum tarafından yazılan Python için anlatılmaktadır. #

Yapacağımız işlemleri sıra ile anlatıyorum. Sıra numarasına sadık kalırsanız hatasız bir şekilde programımızı tamamlayabiliriz.

Python Editörümüzü açıp içerisinde
< print(“Hello C# and Python:)”) > satırından ibaret bir py dosyası oluşturuyoruz. Eger bu noktada sıkıntı yaşarsanız “Visual Tkinter” programını kurabilirsiniz. Donload Visual Tkinter . Bu dosyamızın isminide olarak verelim.
Python dosyamızı içrisine kaydedersek şu an için daha iyi olur. Şimdi de Visual Studio yu açıp menümüzden seçeneğini seçerek C# projemizi oluşturalım. Formumuza 1 Button ve 1 RichTextBox koyalım.
Button muza clikleyerek ilgili metodun açılmasını sağlayalım. daha sonra içerisine şu kodları yazıyoruz.
using System.Diagnostics; // Process sınıfımızın tanımlandığı kütüphane
//Button fonksiyonun içerisine;

Process p = new Process(); // Yeni nesne yarat…
p.StartInfo.UseShellExecute = false; // Shell kullanma…
p.StartInfo.RedirectStandardOutput = true; // Çıkışı yönlendir….
p.StartInfo.FileName = “c:\\python26\\python.exe”; // Python klasörümüz ve derleyicimizin adı…
p.StartInfo.Arguments = “c:\\python26\\Hello_C_Python.py”; // verilecek yani çalıştırılacak python scriptimizin yolu…

p.Start(); // işlemeye başla…

string output = p.StandardOutput.ReadToEnd(); // çıkışı sakla
p.WaitForExit(); // çıkış için zaman tanıyalım 🙂
return output; // ve mutlu son işte sonuç 🙂

Mutlu son demişmiydik. Evet söylemiştik. Bu program için 2 gün tırmaladım ama deydi doğrusu. İşin sırrınıda çözdüm esasında. Sır mı? Sır satırınd a gizli. 🙂 Bekleyen derviş muradına gerçekten ermiş mi?

Hoşça kalın…

Kaynaklar :

http://codemagnet.blogspot.com
http://www.daniweb.com/
http://msdn.microsoft.com/
http://www.python.org/
http://uzaktanegitimmerkezi.org/

Yorum bırakın