c#代码:
private void test()
{
Process p = new Process();
p.StartInfo.FileName = "test.exe"; //填写exe的具体路径
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.Arguments = "abc 123"; //参数
p.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
p.ErrorDataReceived += new DataReceivedEventHandler(OutputHandler);
p.Start();
p.BeginOutputReadLine();
p.WaitForExit();
p.Close();
}
static void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
Console.WriteLine(outLine.Data);
}
python代码(test.py):
import
import time
def test(a,b):
print(a)
sys.stdout.flush()
time.sleep(10)
print(b)
time.sleep(10)
print('测试结束')
if __name__=='__main__':
test(sys.argv[1],sys.argv[2])
*注意:若要实时获取python中的print内容,在print()之后添加sys.stdout.flush(),及时将缓存区的内容flush除去,否则只有在python程序执行完毕之后才能一次性获取print内容!