【发布时间】:2015-04-04 01:36:01
【问题描述】:
我正在从我的 C# 控制台应用程序执行 Python 脚本。我制作了一个执行脚本并仅将字符串打印到输出的裸解决方案。
Python 初始化似乎需要一些时间(大约 0.5 秒),如果我想在一些迭代代码中运行此代码,这会很烦人。
是否有可能以某种方式重用创建的进程,以便 Python 不需要重新初始化? (ps IronPython 不是一个选项,因为到缺少的图书馆)
我正在使用以下代码来执行脚本(此代码在for 循环中运行,25 次迭代总共需要大约 10 秒才能运行...):
string cmd = @"Python/test.py";
string args = "";
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = @"C:\ex\programs\Python27\python.exe";
start.Arguments = string.Format("{0} {1}", cmd, args);
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
using (Process process = Process.Start(start))
{
using (StreamReader reader = process.StandardOutput)
{
string result = reader.ReadToEnd();
Console.Write(result); //output works
}
}
【问题讨论】:
-
如果有办法(IPC?)在c#和python之间进行通信,那么你可以运行一次python程序并保持打开状态。 Python 只会等到 c# 请求做某事,处理它并继续等待。
-
啊“stackoverflow.com/questions/23374854/…”。我从错误的角度看待它
标签: c# python process processstartinfo