从C调用Python应用程序/脚本#

2024-10-01 15:37:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在建造一个ASP.NET我要实现STV (Single Transferable Vote) voting的MVC(C#)站点。我以前在投票场景中使用过OpenSTV,取得了很大的成功,但我从未以编程方式使用过它。在

允许从其他应用程序使用OpenSTV的OpenSTV Google Code project offers a Python script

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发出这样一个Python调用ASP.NETMVC网站?

如果是,怎么办?在

提前谢谢!在


Tags: tofromimportsysexceptionmsgmethodprint
2条回答

最好的方法可能是使用IronPython。关于起点,请参见this answer。在

Here是一个很好的例子,说明如何从C#调用IronPython,包括传递参数和返回结果;当然,您必须将该代码转换为函数,并将ballotFname和{}作为其参数。在

相关问题 更多 >

    热门问题