Как запустить сценарий python из каталога c# - PullRequest
0 голосов
/ 20 июня 2020

У меня сейчас есть проект, который использует python скрипты для работы, у меня все работает, но я запускаю скрипт, в котором находится .exe. Я хотел бы запустить сценарий python из указанной папки конечного пользователя.

Это то, что я использую для запуска сценария.

ProcessStartInfo psi = new ProcessStartInfo();

Я пробовал использовать WorkingDirectory, но это не помогло.

Спасибо за любую помощь!

Изменить: я исправил это, скопировав скрипт в папку и удалив его после сценарий был запущен, но возникла отдельная проблема, когда аргументы не передавались в сценарий правильно, я исправил это, добавив несколько кавычек вокруг аргументов.

1 Ответ

0 голосов
/ 22 июня 2020

Вы можете попробовать следующий код для вызова сценария python внутри каталога в c#.

Сначала я использовал следующий код python.

import sys

dateS=sys.argv[1]

print("Start date",dateS)

Во-вторых, я использовал следующий код c# для успешного вызова скрипта.

        ProcessStartInfo start = new ProcessStartInfo();
        start.FileName = @"C:\Users\username\AppData\Local\Programs\Python\Python38-32\python.exe";//python path
        start.WorkingDirectory = @"D:\Test";//python file in the directoty
        start.Arguments = "Test.py 2020-1-1";
        start.UseShellExecute = false;
        start.CreateNoWindow = true;
        start.RedirectStandardOutput = true;
        string result = "";
        using (Process process = Process.Start(start))
        {
            result = process.StandardOutput.ReadToEnd();
        }
        Console.WriteLine(result);
        Console.ReadKey();

Примечание: я сохранил файл python в D:\Test\Test.py.

Результат:

введите описание изображения здесь

...