我正在构建一个 ASP.NET MVC (C#) 站点,我想在其中实现STV ( Single Transferable Vote ) 投票。我以前曾将 OpenSTV 用于投票场景,并取得了巨大的成功,但我从未以编程方式使用它。
OpenSTV Google Code 项目提供了一个 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 调用?
如果是这样,怎么做?
提前致谢!