Der Aufruf Python app / script von C #
-
25-09-2019 - |
Frage
Ich baue eine ASP.NET MVC (C #) Ort, an dem ich implementieren möchten STV ( tragbare Einzelstimmen ) voting . Ich habe vor OpenSTV zur Abstimmung Szenarien, mit großem Erfolg, aber ich habe es nie programmatisch verwendet.
Die OpenSTV Google Code aufrufen möchten Projekt bietet ein Python-Skript , die Verwendung von OpenSTV aus anderen Anwendungen ermöglicht:
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()
Gibt es eine Möglichkeit für mich, eine solche Python Anruf von meinem C # ASP.NET MVC-Website zu machen?
Wenn ja, wie?
Vielen Dank im Voraus!
Lösung
Hier ist ein gutes Beispiel dafür, wie Ironpython von C # nennen, einschließlich Argumente und Ergebnisse zu geleitet wird; natürlich werden Sie diesen Code in eine Funktion, mit ballotFname
und reportFname
als Argument machen.
Andere Tipps
Der beste Weg ist wahrscheinlich Ironpython zu verwenden. Siehe diese Antwort für einen Ausgangspunkt.