Python, запускаемый из C #, не создает .txt файлы - PullRequest
0 голосов
/ 13 июня 2018

я написал скрипт на python, который создает 3 файла .txt, которые используются для отображения результатов.Когда я пытался запустить скрипт из C # в visual studio 2017, он запускает скрипт и выдает мне правильный вывод, который должен, но тогда скрипт python не создает никаких файлов .txt.Я пытался запустить тот же сценарий непосредственно из cmd и работает отлично, то же самое относится и к py-charm.Я также посмотрел в папке отладки проекта Visual Studio, но там нет файлов.Любой совет, заранее спасибо: D

 public void run_script()
    {
        string scriptPath = @"C:\-\script.py";

        Process p = new Process();
        p.StartInfo = new ProcessStartInfo(@"C:\Python27\python.exe", scriptPath);
        p.Start();
        p.WaitForExit();
        p.Close();

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Вполне вероятно, что файлы создаются правильно, но не в том месте, где вы ожидаете их.

Попробуйте либо установить WorkingDirectory вашего процесса

p.StartInfo.WorkingDirectory = @"c:\path\to\output";

, либо указать полный путь для ваших выходных файлов в скрипте python.

0 голосов
/ 13 июня 2018

Чтобы сделать вещи проще, используйте IronPython.Это бесплатная библиотека с открытым исходным кодом, которую можно получить из nuget.

или через консоль nuget:

Install-Package IronPython -Version 2.7.8.1

для запуска файла: добавьте следующие пространства имен:

using IronPython.Hosting;
using Microsoft.Scripting.Hosting;

тогда просто:

ScriptEngine pScript = Python.CreateEngine();
 pScript.ExecuteFile(@"yourPythonFile.py");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...