C#에서 Python Script 실행하기
C# 2025. 2. 4. 19:45 |C#에서 파이썬 스크립트를 실행해 보자.
1
2
3
4
5
|
import sys
print(sys.argv[0])
if len(sys.argv) > 1:
print(sys.argv[1])
|
우선 위와 같은 파이썬 스크립트(script.py)를 하나 작성하고 저장한다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
using System;
using System.Diagnostics;
class CSTest
{
public static void Main()
{
Process process = new Process();
process.StartInfo.FileName = "python.exe";
process.StartInfo.Arguments = "script.py abc";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
process.WaitForExit();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
Console.WriteLine("■ Output:");
Console.WriteLine(output);
Console.WriteLine("■ Error:");
Console.WriteLine(error);
}
}
|
C# 코드를 작성하고 빌드한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
using System;
using System.Diagnostics;
class CSTest
{
public static void Main()
{
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
process.StandardInput.WriteLine("dir/w");
process.StandardInput.WriteLine("time");
process.StandardInput.Flush();
process.StandardInput.Close();
process.WaitForExit();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
Console.WriteLine("■ Output:");
Console.WriteLine(output);
Console.WriteLine("■ Error:");
Console.WriteLine(error);
}
}
|
파이썬 스크립트를 가상환경에서 실행해야 하거나 복잡한 명령을 차례대로 실행해야 하는 경우 위 코드처럼 cmd를 먼저 실행하고 다른 명령을 순서대로 실행한다.
'C#' 카테고리의 다른 글
C# Volume Auto Control Volume limit Program 자동 볼륨 조절 제한 프로그램 (0) | 2023.10.31 |
---|---|
C# Sound Meter 사운드 미터 (0) | 2023.10.28 |
C# Type Class 타입 클래스 (0) | 2022.07.20 |
C# Joystick(Gamepad) Input Check - 조이스틱(게임패드) 입력 확인 2 (0) | 2022.04.06 |
C# Joystick(Gamepad) Input Check - 조이스틱(게임패드) 입력 확인 1 (0) | 2022.04.05 |