首页 >后端开发 >Python教程 >如何从 C# 运行 Python 脚本并捕获其输出?

如何从 C# 运行 Python 脚本并捕获其输出?

Susan Sarandon
Susan Sarandon原创
2024-12-09 15:41:12739浏览

How Can I Run Python Scripts from C# and Capture Their Output?

从 C# 运行 Python 脚本:综合指南

在跨语言合作领域,从 C# 执行 Python 脚本的问题经常出现。尽管试图提供简洁的答案,但细节有时仍然难以捉摸。让我们深入研究细节并阐明这个过程。

主要挑战在于构建 Python 执行的命令行参数。首先,您必须提供 Python 可执行文件的完整路径作为 ProcessStartInfo 中的 FileName。接下来,通过合并脚本路径和要处理的文件来组装 Arguments 字符串。

要捕获 Python 脚本的输出,请将 UseShellExecute 设置为 false。这还可以使用 RedirectStandardOutput。

调整后的代码:

private void run_cmd(string cmd, string args)
{
    ProcessStartInfo start = new ProcessStartInfo();
    start.FileName = "my/full/path/to/python.exe";
    start.Arguments = string.Format("{0} {1}", cmd, 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);
        }
    }
}

在此代码中,FileName 属性指向实际的 Python 可执行文件。 Arguments 字符串连接脚本路径和 Python 代码要读取的文件。

进一步说明:

  • 而不是硬编码 Python 可执行路径,考虑使用全局安装的 Python 解释器。
  • Arguments 字符串的格式可能会有所不同,具体取决于您正在运行的特定 Python 脚本。有关详细信息,请参阅 Python 文档。
  • 这种方法无需使用 IronPython 或其他外部工具。它允许 C# 和 Python 之间直接通信,捕获输出并实现持续交互。

以上是如何从 C# 运行 Python 脚本并捕获其输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn