Таке запитання було задано раніше в різній мірі, але я вважаю, що на нього не було дано стислого відповіді, і тому я його знову задаю.
Я хочу запустити сценарій в Python. Скажімо, це так:
if __name__ == '__main__':
with open(sys.argv[1], 'r') as f:
s = f.read()
print s
Хто отримує розташування файлу, читає його, після чого друкує його вміст. Не так складно.
Гаразд, так як мені запустити це в C #?
Ось що я маю зараз:
private void run_cmd(string cmd, string args)
{
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = cmd;
start.Arguments = 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);
}
}
}
Коли я передаю code.py
місцезнаходження як cmd
і filename
місце, оскільки args
воно не працює. Мені сказали, що я повинен пройти python.exe
як cmd
, а потім code.py filename
як args
.
Я вже деякий час шукаю і можу знайти лише людей, які пропонують використовувати IronPython або подібне. Але повинен бути спосіб викликати скрипт Python з C #.
Деякі роз’яснення:
Мені потрібно запустити його з C #, мені потрібно зафіксувати вихід, і я не можу використовувати IronPython або щось інше. Що б ви не зламали, буде добре.
PS: Фактичний код Python, який я виконую, набагато складніший за це, і він повертає вихід, який мені потрібен в C #, і код C # буде постійно викликати код Python.
Притворіться, що це мій код:
private void get_vals()
{
for (int i = 0; i < 100; i++)
{
run_cmd("code.py", i);
}
}