Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从C向Python脚本发送数据#_C#_Python - Fatal编程技术网

C# 如何从C向Python脚本发送数据#

C# 如何从C向Python脚本发送数据#,c#,python,C#,Python,我已经从C#开始试用Python,但我不知道如何执行Python脚本并编写命令/数据。我一直在寻找这个链接:“ 但只演示如何读取Python脚本输出,而不是在脚本打开/执行后如何编写 例如,我想打开一个python脚本(来自C Sharp),并将一些数据从C#发送到一个raw_input()函数 你能帮我吗?链接,例子,一切都是欢迎的。。。我现在迷路了 附言:我不想使用ironpython C#示例: 重要更新:我发现如果我设置“myProcessStartInfo.RedirectStanda

我已经从C#开始试用Python,但我不知道如何执行Python脚本并编写命令/数据。我一直在寻找这个链接:“

但只演示如何读取Python脚本输出,而不是在脚本打开/执行后如何编写

例如,我想打开一个python脚本(来自C Sharp),并将一些数据从C#发送到一个raw_input()函数

你能帮我吗?链接,例子,一切都是欢迎的。。。我现在迷路了

附言:我不想使用ironpython

C#示例:

重要更新:我发现如果我设置“myProcessStartInfo.RedirectStandardInput=false”,“RedirectStandardOutput”会工作,但我不会写…

你需要C程序和python程序同时工作吗? 如果没有,您可以从C#程序收集所有数据,并将它们作为命令行中的参数或两个程序共享的文件发送到python脚本


要在python脚本中使用参数,可以使用。

是否尝试添加
myProcessStartInfo.RedirectStandardInput=true
StreamWriter myStreamWriter=myProcess.StandardÌnput在向流编写器写入的输出旁边?您可以使用python中的
raw_input()
读取stdin中的行。要交换更复杂的数据,您可以使用JSON(python标准库中的支持,也可用于C#)。嗨,我尝试了您所说的,但“StreamReader myStreamReader=myProcessR.StandardOutput;”现在不起作用。请看我的示例…
myProcessR
myProcessW
必须是相同的流程。
private void button1_Click(object sender, EventArgs e)
        {
            string python = @"C:\Python27\python.exe";;
            string myPythonApp = "myscript/test01.py"; 

            ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(python);

            myProcessStartInfo.UseShellExecute = false
            myProcessStartInfo.CreateNoWindow = true
            myProcessStartInfo.RedirectStandardOutput = true
            myProcessStartInfo.RedirectStandardInput = true;

            myProcessStartInfo.Arguments = myPythonApp;

            //<>//---------------ISSUE?--------------------------------
            Process myProcessW = new Process();
            Process myProcessR = new Process();//

            myProcessW.StartInfo = myProcessStartInfo;
            myProcessR.StartInfo = myProcessStartInfo;

            myProcessW.Start();
            myProcessR.Start();

            StreamWriter myStreamWriter = myProcessW.StandardInput;
            string inputText;
            inputText = textBox1.Text;
            myStreamWriter.WriteLine(inputText); // <--OK!

            myProcessW.WaitForExit();
            myProcessW.Close();

            // 
            StreamReader myStreamReader = myProcessR.StandardOutput;
            MessageBox.Show("01"); //For Debug, is executed
            string myString = myStreamReader.ReadLine();

            MessageBox.Show("02"); //For Debug, is NOT executed

            label1.Text = myString;

            myProcessR.WaitForExit();
            myProcessR.Close();
            //<>//---------------/ISSUE?--------------------------------
        }
 aaa = raw_input("> ")
 print "Ok, you say:",aaa