C-Programm in Python einbinden?
Hallo, ich habe letztens in C ein kleines Programm geschrieben, denn ich lerne gerade Python und kam auf die Idee, ich könnte ja C Programme in Python einbinden und ausgeben. Ich habe eben mal im Internet geschaut und ein paar Sachen gefunden, verstehe dies aber nicht, da ich wie gesagt erst mit Python angefangen habe, aber C dafür kann. Könnte jemand von euch mir erklären, wie ich das Programm in Python einbinde und dort ausgebe?
Post Scriptum: Das C-Programm ist eine Konsolendatei und ich habe vor, diese in einer Python GUI auszugeben.
2 Antworten
Nun ja - ganz so einfach ist es nicht:
Es gibt prinzipiell zwei Möglichkeiten, C-Code in Python einzubinden:
Erstens:
Man kann C-Code tatsächlich in Python einbinden, indem man eine ".pyd"-DLL-Datei schreibt. (Annahme: du arbeitest unter Windows; bei anderen Betriebssystemen geht es aber ähnlich)
Mit dieser Methode kann man neue Befehle in Python hinzufügen, die selbst in C geschrieben sind.
Dazu muss man aber sowohl C als auch Python gut können.
Zweitens:
Man kann eine beliebige ".exe"-Datei ausführen und den Text, den das Programm ausgegeben hat, in eine Variable schreiben lassen.
Auch das ist nicht trivial - insbesonders dann, wenn die Ausgabe des Konsolenprogramms eine bestimmte Länge überschreitet...
Danke für die Antwort, ich weiß, das es nicht so einfach ist aber wollte es halt mal ausprobieren :D
Du könntest du Funktionen deines C-Programms in eine Dynamische Bibliothek linken, und das Ganze dann von Python aus mit Hilfe des "ctypes" Moduls sehr bequem in Python laden und benutzen:
https://docs.python.org/3/library/ctypes.html
Oder du rufst dein C-Programm z. B. über check_output() des "subprocess" Moduls auf, und lässt dir den Text der Standardausgabe in einem Python String zurück geben.
Für Details lies dir einfach die entsprechenden API-Docs durch!
Viel Spaß! :)