スポンサーリンク

【C#】C#でPythonを実行する方法ご紹介。〜 バッチファイル経由 〜

C#
スポンサーリンク

今回の記事はC#でPythonを実行する方法に関してご紹介します。Pythonのexe化はかなり手間がかかりますので、バッチファイル経由でコマンドでPythonファイルを実行し、出力を取得する流れをご紹介していきます。

スポンサーリンク

Pythonを実行するバッチの作成

Pythonファイルは下記のような記述にしましょう。

print("テスト")

このファイルをコマンドから実行すると下記のような出力になります。

python [test.pyのあるディレクトリ]/test.py

出力
テスト

ではこのコマンド実行をバッチファイルにしていきます。

rem AnacondaのPythonを使用する場合は下記のremを外して使用します。
rem call C:\Users\XXX\Anaconda3\Scripts\activate.bat
python test.py

timeout 10

batファイルはメモ帳などからも作成可能なので好きに作ってみてください。バッチファイルはクリックすると実行可能です。

ではこのバッチファイルをC#で実行し、Pythonでコンソールに出力している「テスト」という文字を取得していきます。

C#でバッチファイルを実行

次にC#でバッチファイルを実行する方法に関してです。

using System.Diagnostics;


namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            Process p = new Process();

            p.StartInfo.FileName = "バッチファイルのパス.bat";
            //p.StartInfo.Arguments = "何か引数があれば";
            p.StartInfo.Verb = "RunAs"; //管理者として実行する場合
            //実行
            p.Start();
        }
    }
}

引数があればコメントアウトを外して実行してみてください。基本的にコマンドラインでの操作のようなイメージなのでexeファイルを実行したい場合は、バッチファイルのパスのところをexeファイルのパスに変更してください。

詳しくは下記記事で解説しています。

C#で自作exeファイルを実行する方法。

C#でPythonを実行しコンソールを取得

using System;
using System.Diagnostics;


namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            Process p = new Process();

            p.StartInfo.FileName = "バッチファイルのパス.bat";
            //p.StartInfo.Arguments = "何か引数があれば";
            p.StartInfo.Verb = "RunAs"; //管理者として実行する場合
            //実行
            p.StartInfo.RedirectStandardOutput = true;
            p.Start();

            string str = p.StandardOutput.ReadLine();
            p.WaitForExit();
            Console.WriteLine(str);


        }
    }
}

先ほどのバッチ実行プログラムにバッチのコンソールを取得するプログラムを追加し、Pythonでprintした結果を取得できます。

以上で今回の記事は終了です。他にも多数のC#関連の記事やPythonの記事を記載しています。是非興味があればそちらも参考にしてください。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

C#
スポンサーリンク
スポンサーリンク

コメント

タイトルとURLをコピーしました