我正在構建一個ASP.NET MVC(C#)網站,我想實現。我之前使用過OpenSTV進行投票,取得了巨大的成功,但我從未以編程方式使用它。從C調用Python應用/腳本#
的OpenSTV Google Code project offers a Python script,允許從其他應用程序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電話嗎?
如果是這樣,怎麼樣?
在此先感謝!
太棒了;然而,如何在Python腳本中定義一個方法來通過IronPython調用,以及如何傳入ballotFname(選票文件名)和reportFname(報告文件名)? – 2010-06-09 03:33:53