Looking for python Keywords? Try Ask4Keywords

Python LanguagePython aus C # aufrufen


Einführung

Die Dokumentation enthält eine Beispielimplementierung der Kommunikation zwischen C # - und Python-Skripts.

Bemerkungen

Beachten Sie, dass die Daten im obigen Beispiel mit der MongoDB.Bson- Bibliothek serialisiert werden, die über den NuGet Manager installiert werden kann.

Ansonsten können Sie eine beliebige JSON-Serialisierungsbibliothek Ihrer Wahl verwenden.


Nachfolgend sind Implementierungsschritte für die Kommunikation zwischen Prozessen aufgeführt:

  • Eingabeargumente werden in eine JSON-Zeichenfolge serialisiert und in einer temporären Textdatei gespeichert:

     BsonDocument argsBson = BsonDocument.Parse("{ 'x' : '1', 'y' : '2' }"); 
     string argsFile = string.Format("{0}\\{1}.txt", Path.GetDirectoryName(pyScriptPath), Guid.NewGuid());
    
  • Der Python-Interpreter python.exe führt das Python-Skript aus, das die JSON-Zeichenfolge aus einer temporären Textdatei liest und Eingabeargumente zurücksetzt:

     filename = sys.argv[ 1 ]
     with open( filename ) as data_file:  
        input_args = json.loads( data_file.read() )
    
     x, y = [ float(input_args.get( key )) for key in [ 'x', 'y' ] ]
    
  • Das Python-Skript wird ausgeführt und das Ausgabewörterbuch in eine JSON-Zeichenfolge serialisiert und im Befehlsfenster gedruckt:

     print json.dumps( { 'sum' : x + y , 'subtract' : x - y } )
    

    Geben Sie hier die Bildbeschreibung ein

  • Lesen Sie den Ausgabe-JSON-String aus der C # -Anwendung:

     using (StreamReader myStreamReader = process.StandardOutput)
     {
        outputString = myStreamReader.ReadLine();
        process.WaitForExit();
     }
    

Geben Sie hier die Bildbeschreibung ein

Ich verwende in einem meiner Projekte die Kommunikation zwischen C # - und Python-Skripts, die das direkte Aufrufen von Python-Skripts aus Excel-Tabellen ermöglicht.

Das Projekt verwendet das ExcelDNA-Add-In für die C # - Excel-Bindung.

Der Quellcode wird im GitHub- Repository gespeichert.

Nachfolgend finden Sie Links zu Wiki-Seiten, die einen Überblick über das Projekt bieten und in 4 einfachen Schritten zum Einstieg beitragen.

Ich hoffe, Sie finden das Beispiel und das Projekt nützlich.


Python aus C # aufrufen Verwandte Beispiele