Die übergabe von Daten zwischen Python und C# ohne schreiben einer Datei

Ich gerne weitergeben möchte binäre Daten zwischen Python und C#. Ich würde davon ausgehen, dass Sie können öffnen Sie ein standard-in - /- out-Kanal und Lesen und schreiben ist wie eine Datei, aber es gibt eine Menge von beweglichen teilen, und ich weiß nicht C# zu gut. Ich will, das zu tun diese Art der Sache, aber ohne schreiben einer Datei.

# python code
with open(DATA_PIPE_FILE_PATH, 'wb') as fid:
    fid.write(blob)
subprocess.Popen(C_SHARP_EXECUTABLE_FILE_PATH)
with open(DATA_PIPE_FILE_PATH, 'rb') as fid:
    'Do stuff with the data'

//C# code
static int Main(string[] args){
    byte[] binaryData = File.ReadAllBytes(DataPipeFilePath);
    byte[] outputData;
    //Create outputData
    File.WriteAllBytes(outputData)

Habe ich versucht, verschiedene Möglichkeiten der Verwendung von standard-in/out, aber ich habe kein Glück Abgleich bis, wie ich schon sagte, es gibt eine Menge von beweglichen teilen. Ich habe versucht, Dinge wie

p = subprocess.Popen(C_SHARP_EXECUTABLE_FILE_PATH, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p.stdin.write(blob)
p.stdin.close()

oder

p = subprocess.Popen(C_SHARP_EXECUTABLE_FILE_PATH, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
out, err = p.communicate(blob)

auf der python-Seite zusammen mit

TextReader tIn = Console.In;
TextWriter tOut = Console.Out;
String str = tIn.ReadToEnd();
//etc...

sowie ein paar andere Dinge, die nicht arbeiten, auf der C# Seite. Ich habe milden Erfolg mit einigen Dingen, aber ich habe es geändert um so viel, dass ich mich nicht daran erinnern, was funktioniert hat, was. Könnte jemand mir einen Tipp geben, welche Stücke am besten funktionieren, oder ob dies überhaupt möglich ist?

Den Daten die ich übergeben will, hat null und andere nicht-druckbare Zeichen.

  • warum nicht einfach verwenden python.NET? je nachdem, was du tust, es funktioniert ziemlich gut...
  • Verwandte: stackoverflow.com/q/7367976
  • Was ist python.net?
  • siehe reed ' s Antwort unten (verzeichneten wir fast zur gleichen Zeit), da hat er einen link gibt. Sie ermöglicht den Zugriff auf C# - Bibliotheken in einer Weise, die fast native - Sie können auch importieren Sie eine C# - Bibliothek in der Konsole, und einige interaktive Registerkarte Fertigstellung, etc.
Schreibe einen Kommentar