Looking for python Keywords? Try Ask4Keywords

Python LanguageAppelez Python depuis C #


Introduction

La documentation fournit un exemple d'implémentation de la communication inter-processus entre les scripts C # et Python.

Remarques

Notez que dans l'exemple ci-dessus, les données sont sérialisées en utilisant la bibliothèque MongoDB.Bson qui peut être installée via le gestionnaire NuGet.

Sinon, vous pouvez utiliser n'importe quelle bibliothèque de sérialisation JSON de votre choix.


Vous trouverez ci-dessous les étapes de mise en œuvre de la communication inter-processus:

  • Les arguments en entrée sont sérialisés en chaîne JSON et enregistrés dans un fichier texte temporaire:

     BsonDocument argsBson = BsonDocument.Parse("{ 'x' : '1', 'y' : '2' }"); 
     string argsFile = string.Format("{0}\\{1}.txt", Path.GetDirectoryName(pyScriptPath), Guid.NewGuid());
    
  • L'interpréteur Python python.exe exécute le script python qui lit la chaîne JSON à partir d'un fichier texte temporaire et des arguments d'entrée inversés:

     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' ] ]
    
  • Le script Python est exécuté et le dictionnaire de sortie est sérialisé en chaîne JSON et imprimé dans la fenêtre de commande:

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

    entrer la description de l'image ici

  • Lire la chaîne JSON de sortie depuis l'application C #:

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

entrer la description de l'image ici

J'utilise la communication inter-processus entre les scripts C # et Python dans l'un de mes projets qui permet d'appeler des scripts Python directement à partir de feuilles de calcul Excel.

Le projet utilise le complément ExcelDNA pour la liaison C # - Excel.

Le code source est stocké dans le référentiel GitHub.

Vous trouverez ci-dessous des liens vers des pages wiki qui donnent un aperçu du projet et vous aident à démarrer en 4 étapes simples .

J'espère que vous trouvez l'exemple et le projet utiles.


Appelez Python depuis C # Exemples Liés