从C#调用Python应用程序/脚本
-
25-09-2019 - |
题
我建设,我想实现的 STV(转移单票)表决。我用OpenSTV表决方案之前,取得了巨大成功,但我从来没有编程使用它。
在 OpenSTV谷歌代码调用项目计划书的Python脚本允许OpenSTV的使用从其他应用程序:
import sys
sys.path.append("path to openstv package")
from openstv.ballots import Ballots
from openstv.ReportPlugins.TextReport import TextReport
from openstv.plugins import getMethodPlugins
(ballotFname, method, reportFname) = sys.argv[1:]
methods = getMethodPlugins("byName")
f = open(reportFname, "w")
try:
b = Ballots()
b.loadUnknown(ballotFname)
except Exception, msg:
print >> f, ("Unable to read ballots from %s" % ballotFname)
print >> f, msg
sys.exit(-1)
try:
e = methods[method](b)
e.runElection()
except Exception, msg:
print >> f, ("Unable to count votes using %s" % method)
print >> f, msg
sys.exit(-1)
try:
r = TextReport(e, outputFile=f)
r.generateReport();
except Exception, msg:
print >> f, "Unable to write report"
print >> f, msg
sys.exit(-1)
f.close()
有我从我的C#ASP.NET MVC网站作出这样的Python的电话吗?一个办法
如果这样,如何?
提前感谢!
解决方案
这里是关于如何从C#调用IronPython的一个很好的例子,包括传递参数和返回结果;当然,你必须作出这样的代码放到一个函数,用ballotFname
和reportFname
作为参数。
其他提示
最好的办法可能是使用IronPython的。请参阅此答案获取的起点。
不隶属于 StackOverflow