Я пытаюсь вызвать из C # скрипт Python, разделенный на множество функций. С этими частями кода вывод пуст.
import sys
def main():
print('Hello')
if len(sys.argv) >=3:
x = sys.argv[1]
y = sys.argv[2]
# print concatenated parameters
main2(x,y)
def main2(x,y):
print(x+y)
if __name__=='__main__':
main()
C #:
int x = 1;
int y = 2;
string progToRun = "main.py";
Process proc = new Process();
proc.StartInfo.FileName = @"C:\Program Files\Python37\python.exe";
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.Arguments = string.Concat(progToRun, " ", x.ToString(), " ", y.ToString());
proc.Start();
StreamReader sReader = proc.StandardOutput;
string output = sReader.ReadToEnd();
proc.WaitForExit();
Console.ReadLine();
С этим скриптом Python он работает:
import sys
def main():
print('Hello')
if len(sys.argv) >=3:
x = sys.argv[1]
y = sys.argv[2]
# print concatenated parameters
print(x+y)
if __name__=='__main__':
main()
В чем разница между двумя сценариями pyhton? Как я могу использовать в C # Python скрипт со многими функциями? Могу ли я выполнить скрипт Python без отправки параметров (x и y)?
Спасибо.