Как запустить скрипт Python из C #?
Такого рода вопрос уже задавался в разной степени, но я чувствую, что на него не дан краткий ответ, и поэтому я задаю его еще раз.
Я хочу запустить скрипт на Python. Позвольте сказать, что это так:
if __name__ == '__main__':
with open(sys.argv[1], 'r') as f:
s = f.read()
print s
Который получает местоположение файла, читает его, затем печатает его содержимое. Не так сложно.
Хорошо, так как мне запустить это в C #?
Вот что у меня сейчас:
private void run_cmd(string cmd, string args)
{
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = cmd;
start.Arguments = 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);
}
}
}
Когда я прохожуcode.py
расположение какcmd
иfilename
расположение какargs
это не работает. Мне сказали, что я должен пройтиpython.exe
какcmd
, а потомcode.py filename
какargs
.
Я давно искал и могу найти только людей, предлагающих использовать IronPython или что-то подобное. Но должен быть способ вызова скрипта Python из C #.
Некоторые уточнения:
Мне нужно запустить его из C #, мне нужно захватить вывод, и я не могу использовать IronPython или что-либо еще. Какой бы взлом у вас ни был, все будет хорошо.
П.С .: Фактический код Python, который я запускаю, гораздо сложнее, чем этот, и он возвращает вывод, который мне нужен в C #, и код C # будет постоянно вызывать Python.
Притворись, что это мой код:
private void get_vals()
{
for (int i = 0; i < 100; i++)
{
run_cmd("code.py", i);
}
}