无法使用C#从python脚本获取多个字符串输出

时间:2018-08-18 11:06:43

标签: c# python-3.x

我有一个Richtextbox,我在其中插入以下字符串值:-Archit Panda。

但是我从python脚本获取的输出仅为“ Archit”。

按钮上的C#代码:-

私有无效按钮13_Click(对象发送者,RoutedEventArgs e)         {

        TextRange textRange = new TextRange(richTextBox1.Document.ContentStart,richTextBox1.Document.ContentEnd);
        string str = textRange.Text;
        string FileName = @"C:\Users\Archit\AppData\Local\Programs\Python\Python37-32\python.exe";
       // string myPythonApp = @"""C:\Users\Archit\Documents\Visual studio 2010\Projects\WpfApplication1\WpfApplication1\blockchain.py""";
        string myPythonApp = @"blockchain.py";
        ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(FileName);

        myProcessStartInfo.UseShellExecute = false;
        myProcessStartInfo.RedirectStandardOutput = true;
        //Console.WriteLine(splitted.ToString());
        myProcessStartInfo.Arguments = myPythonApp+ " " +str;
        Process myProcess = new Process();
        myProcess.StartInfo = myProcessStartInfo;
        myProcess.Start(); 
        StreamReader myStreamReader = myProcess.StandardOutput;
        string myString = myStreamReader.ReadLine();

        myProcess.WaitForExit();
        myProcess.Close();

        Console.WriteLine("Value received from script: " + myString); 

    }

Python脚本:-

!/ usr / bin / python

导入系统

x = sys.argv [1] 打印(x)

我想输出为“ Archit Panda”。 你能告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

如果要接受参数,然后将其发送给“ Archit Panda”,就像将其发送到命令行一样。

python blockchain.py Archit Panda

在您的Python脚本中,您仅在寻找argv [1],即Archit。 argv [2]是熊猫。如果要在Python脚本中传递参数,则可以循环遍历它们,也可以转义C#应用程序中的空格并发送类似的内容。 "Archit\ Panda""'Archit Panda'"

命令行选项

tmp$ python3 test.py Archit Panda Archit tmp$ python3 test.py 'Archit Panda' Archit Panda tmp$ python3 test.py Archit\ Panda Archit Panda tmp$ python3 test.py 'Archit Panda can send a lot of text to this argument.' Archit Panda can send a lot of text to this argument.

如果使用引号,请替换此行。

myProcessStartInfo.Arguments = myPythonApp+ " " +str;

使用

myProcessStartInfo.Arguments = myPythonApp+ " \"" +str+"\"";

希望这可以帮助您