C# 在C中调用Python作为进程#

C# 在C中调用Python作为进程#,c#,python,C#,Python,我已在Windows中安装,因此,我可以在命令提示符下运行它,从vbaProject.bin检索VBA宏: 现在,我想在Visual Studio中启动它,因此我添加了以下代码: public static void printMacros() { Process p = new Process(); p.StartInfo.FileName = "python.exe"; p.StartInfo.RedirectStandardOutput = true; p

我已在Windows中安装,因此,我可以在命令提示符下运行它,从
vbaProject.bin
检索VBA宏:

现在,我想在Visual Studio中启动它,因此我添加了以下代码:

public static void printMacros()
{
    Process p = new Process();
    p.StartInfo.FileName = "python.exe";
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.Arguments = "../../oletools-0.46/oletools/olevba.py ../../oletools-0.46/oletools/vbaProject.bin";
    p.Start();
    StreamReader s = p.StandardOutput;
    String output = s.ReadToEnd();
    string[] r = output.Split(new char[] { ' ' });
    Console.WriteLine(r[0]);
    p.WaitForExit();
}
然而,汇编并没有很好地显示结果:

请注意,
p.StartInfo.Arguments
中的路径
。/../oletools-0.46/oletools/olevba.py
是正确的,否则不会引发
此类文件或目录
错误;而将第二个参数
。/../oletools-0.46/oletools/vbaProject.bin
更改为不相关的文件始终会返回相同的结果


有人知道这里出了什么问题吗?

您是否尝试过指定绝对路径而不是相对路径?我刚刚尝试过,它返回了相同的结果…您是否尝试过指定绝对路径而不是相对路径?我刚刚尝试过,它返回了相同的结果。。。