ホームページ >バックエンド開発 >Python チュートリアル >IronPython を使用せずに C# から Python スクリプトを実行するにはどうすればよいですか?

IronPython を使用せずに C# から Python スクリプトを実行するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-15 16:39:11343ブラウズ

How Can I Execute Python Scripts from C# Without IronPython?

C# からの Python スクリプトの呼び出し

IronPython などの外部ライブラリを使用せずに、C# から Python スクリプトを実行することができます。これにアプローチする方法は次のとおりです:

次の Python スクリプト (code.py) を考えてみましょう:

if __name__ == '__main__':
    with open(sys.argv[1], 'r') as f:
        s = f.read()
    print(s)

このスクリプトを C# で実行するには、run_cmd メソッドを次のように調整します:

private void run_cmd(string cmd, string args)
{
    ProcessStartInfo start = new ProcessStartInfo();

    // Specify the complete path to python.exe
    start.FileName = "my/full/path/to/python.exe";

    // Build the argument string with the script and file paths
    start.Arguments = string.Format("{0} {1}", cmd, args);

    // Disable using the shell to gain more control
    start.UseShellExecute = false;

    // Enable standard output redirection to capture the script's output
    start.RedirectStandardOutput = true;

    using (Process process = Process.Start(start))
    {
        using (StreamReader reader = process.StandardOutput)
        {
            string result = reader.ReadToEnd();
            Console.Write(result);
        }
    }
}

UseShellExecute を false に設定すると、Python に渡されるコマンドと引数を制御できるようになります。 FileName として python.exe へのフル パスを指定し、スクリプト パス (cmd) と読み取るファイル パス (args) の両方を含むように Arguments 文字列を構築する必要があります。

から Python スクリプトを継続的に呼び出すことに注意してください。 C# は、毎回新しいプロセスを作成するオーバーヘッドにより、パフォーマンスに影響を与える可能性があります。スクリプトの実行時間が大幅にかかる場合は、アプローチを最適化するか、より適切なプロセス間通信メカニズムを使用することを検討してください。

以上がIronPython を使用せずに C# から Python スクリプトを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。