从C#运行的python不会创建.txt文件

时间:2018-06-13 13:43:42

标签: c# python python-2.7 visual-studio

我写了一个python脚本,创建了3个.txt文件,用于显示结果。当我试图在Visual Studio 2017中从C#运行脚本时,它运行脚本并给我正确的输出,但是python脚本不会创建任何.txt文件。我尝试直接从cmd运行相同的脚本,并且工作完美,py-charm也是如此。我也查看了visual studio项目的debug文件夹,但那里没有文件。任何建议,提前谢谢: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 :(得分:2)

很可能,文件是正确生成的,但不是在您期望的位置。

尝试设置流程的WorkingDirectory

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

或在python脚本中设置输出文件的完整路径。

答案 1 :(得分:0)

为了使事情更简单,请使用IronPython。 它是一个免费的开源库,可以从nuget获得它。

或通过nuget console:

Install-Package IronPython -Version 2.7.8.1

运行文件: 添加这些名称空间:

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

然后简单地说:

ScriptEngine pScript = Python.CreateEngine();
 pScript.ExecuteFile(@"yourPythonFile.py");