【发布时间】:2019-04-09 20:16:46
【问题描述】:
我尝试从 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 脚本?我可以在不发送参数(x 和 y)的情况下执行 python 脚本吗?
谢谢。
【问题讨论】:
-
如果你只是为了简单化的东西,使用iron python