ホームページ >バックエンド開発 >Python チュートリアル >C# から Python スクリプトを実行してその出力をキャプチャするにはどうすればよいですか?

C# から Python スクリプトを実行してその出力をキャプチャするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-09 15:41:12834ブラウズ

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 インタープリターの使用を検討してください。
  • 引数の形式string は、実行している特定の Python スクリプトによって異なる場合があります。詳細については、Python のドキュメントを参照してください。
  • このアプローチでは、IronPython やその他の外部ツールが必要ありません。これにより、C# と Python 間の直接通信が可能になり、出力をキャプチャして継続的な対話が可能になります。

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

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