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

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

Mary-Kate Olsen
リリース: 2024-12-15 16:39:11
オリジナル
341 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート