Как запустить скрипт 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 или что-то еще. Какой бы хак у вас ни был, все будет в порядке.

P.S. :Фактический код Python, который я запускаю, намного сложнее, чем этот, и он возвращает вывод, который мне нужен, на C #, а код C #будет постоянно вызывать Python.

Представь, что это мой код:

    private void get_vals()
    {
        for (int i = 0; i < 100; i++)
        {
            run_cmd("code.py", i);
        }
    }
111
задан jpmc26 31 December 2018 в 04:13
поделиться