Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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#表单传递到Python中_C#_Python - Fatal编程技术网

如何将值从C#表单传递到Python中

如何将值从C#表单传递到Python中,c#,python,C#,Python,我在后台使用visualc作为UI和Python 在visual C#窗体上输入详细信息 单击按钮应运行Python程序,该程序应将表单中给出的详细信息嵌入到XML文件中 Python应该处理XML并将其吸收到系统中 Python应该从日志中监视成功,并返回以C形式显示的值 这是可能的吗?您可以在后台的一个新进程中启动python,并将表单项作为参数传递到进程启动信息中,就像从命令行运行python脚本一样,如下所示: var start = new ProcessStartInfo

我在后台使用visualc作为UI和Python

  • 在visual C#窗体上输入详细信息
  • 单击按钮应运行Python程序,该程序应将表单中给出的详细信息嵌入到XML文件中
  • Python应该处理XML并将其吸收到系统中
  • Python应该从日志中监视成功,并返回以C形式显示的值

  • 这是可能的吗?

    您可以在后台的一个新进程中启动python,并将表单项作为参数传递到进程启动信息中,就像从命令行运行python脚本一样,如下所示:

    var start = new ProcessStartInfo
                {
                    FileName = _pathToPythonExecutable,
                    Arguments = string.Format(" {0} --arg1 {1}",_pathToYourPythonScript, //formItemValue),
                    UseShellExecute = false,
                    RedirectStandardOutput = true,
                    RedirectStandardInput = true,
                    RedirectStandardError = true,
                    WorkingDirectory = _currentWorkingDirectory            
                };
    using (Process process = Process.Start(start))
                { 
                    // Do stuff
                }
    
    您将在我的开始信息中看到,我已经告诉流程重定向StandardInput、Standard Output和Standard Error。这是在进程之间传递数据的另一种方式

    您可以这样写入标准输入:

    process.StandardInput.Write(input);
    process.StandardInput.Close();
    
    标准输出和标准错误是流,所以您可以像这样读取它们

    // This would be the same for standard error
    using (StreamReader reader = process.StandardOutput)
                    {
                        result = reader.ReadToEnd();
                    }
    

    你试过什么吗?“我在后台使用visualc作为UI和Python”-为什么?为什么不用C#编写后端,或者使用IronPython实现.NET互操作性呢。。。我从许多同事那里了解到使用c#作为后端。所以我可能会重新考虑乔恩。。。如何使用IronPython?你建议哪一个?我想要一个好的UI来为我的Python脚本服务我想要一个好的UI来为我的Python脚本服务请尝试
    kivi
    非常感谢David。我会试试看的,我会的update@Roshanr是的,一定要让我知道。我建议您使用C#后端,但如果您无法避免使用python,就像在我的情况下一样,我相信这应该可以为youjon处理它。。。我同意你使用c#作为后端。因为我只想使用Python,但是有一些漂亮的UI,所以我无法避免使用它。我刚刚测试了你给我的同样的东西,效果很好。谢谢lot@Roshanr好极了,很高兴听到。很高兴我能帮忙!很抱歉,我提到的是乔恩而不是大卫:)