C #: та же команда с использованием командной строки и кода C # не работает - PullRequest
0 голосов
/ 19 сентября 2019

Итак, у меня есть python проект внутри этой папки: C:\root и внутри этого path у меня есть этот файл: C:\root\\my_class.py И из command-line:

cd C:\root

И чем запустить мойкод:

python my_class.py -p C:\Regression -a some_value -n HW

Так что из командной строки это работает нормально, но теперь я хочу запустить его из c# кода и прочитать вывод:

Изменить каталог:

    Process p = new Process();
    p.StartInfo.FileName = "cmd.exe";
    p.StartInfo.WorkingDirectory = @"C:\root";
    p.StartInfo.UseShellExecute = false;
    p.Start();

Запустите мою команду

    string pythonPath = @"C:\Python37\python.exe";
    string command = "C:\root\\my_class.py -p C:\\Regression -a some_value -n HW";

    Process process = new Process();
    process.StartInfo.FileName = pythonPath;
    process.StartInfo.Arguments = command;
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.RedirectStandardOutput = true;
    process.StartInfo.RedirectStandardError = true;
    process.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
    process.ErrorDataReceived += new DataReceivedEventHandler(OutputHandler);
    process.Start();
    process.BeginOutputReadLine();
    process.BeginErrorReadLine();
    process.WaitForExit();
    Console.ReadLine();

Так что в этом случае, когда я запускаю эту команду, используя c#, я получаю это error:

C: \ Python37 \ python.exe: не удается открыть файл 'C: \ root \ my_class.py': [Errno 22] Неверный аргумент

1 Ответ

1 голос
/ 19 сентября 2019

Вы указываете здесь исполняемый файл string pythonPath = "C:\Python37\python.exe";

Полагаю, вам не нужно использовать python здесь в вашей команде.string command = "python C:\root\\my_class.py -p C:\\Regression -a some_value -n HW";

Также вы смешали косую черту в команде, попробуйте ввести в командной строке:

 string command = "C:\\root\\my_class.py -p C:\\Regression -a some_value -n HW";`

или

 string command = @"C:\root\my_class.py -p C:\Regression -a some_value -n HW";`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...