2013-09-22 93 views
1

我已經搜索了一種方法來做到這一點,但目前爲止還沒有成功。在C中運行交互式Python腳本#

我的問題是類似這樣的: How do I run a Python script from C#?

但在我的情況下,劇本要更多這樣的:

def main(): 
    i = raw_input("i = ") 

我可以通過創建如下所示的過程輸出重定向罰款:

ProcessStartInfo info = new ProcessStartInfo("cmd", "/c python myFile.py"); 

我該如何將輸入發回給它?

請注意,python腳本可以是任何東西。我不知道什麼時候可能會輸入一個輸入,所以使用streamwriter通過設置redirectStandardInput來設置爲true不起作用。

任何幫助都會很棒。謝謝大家!

回答

0

您必須重定向您的流程stdin。 這裏是你如何能做到這一個完整的例子:

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardinput.aspx

+0

不幸的是重定向標準輸入似乎並不在CMD是用來運行像蟒蛇另一個進程的工作。在任何情況下,重定向都需要C#代碼在運行腳本之前知道預期的輸入,時間和數量等。 – Nikeah

+0

您是如何注意到它不起作用的?你能提供一個例子嗎?恐怕我不明白這個問題 –

+1

以爲我會回來,並回復這個重定向確實工作。 原來,Python進程需要在交互模式下運行才能正常工作。可以通過將「-i」作爲參數傳遞給進程來完成。 謝謝Chiel – Nikeah

相關問題