Python Binder

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
br0de
User
Beiträge: 2
Registriert: Mittwoch 3. Februar 2010, 11:01

Hallo, ich hab Python vor Kurzem entdeckt und bin von der Sprache völlig begeistert. Hab schon einige Experimente damit durchgeführt (url-handling,gui & co). Jetzt wollt ich nen Datei-Binder schreiben, der wie folgt vorgeht:
1. 1.Datei auslesen
1 2.Datei auslesen
3. Die ausgelesenen Daten in eine neue Datei schreiben

Dazu ab ich den folgenden Code geschrieben:

Code: Alles auswählen

#!/usr/bin/python

bin_file = open("testexe.exe","rb") # get content of testexe.exe
bin_res = bin_file.read()
bin_file.close()


bin_file2 = open("testexe2.exe","rb") #get content of testexe2.exe
bin_res2 = bin_file2.read()
bin_file2.close()

space = "\n"
#bin_res and bin_res2 will now be writte into a new file

bind_file_new = open("new.exe","wb")
include_file1 = bind_file_new.write(bin_res)
make_file_space = bind_file_new.write(space)
include_file2 = bind_file_new.write(bin_res2)
bind_file_new.close()
Stört euch nicht am Englisch, ich schreib nur häufiger in englischsprachigen Foren, daher kommt das.

Ich hab aber jetzt ein Problem: testexe1.exe gibt "Hallo Welt!" aus.
testexe2.exe gibt "Your fat32 Moom" aus.

Wie ihr seht lese ich die Daten aus (das funktioniert auch soweit, habs getestet) und schreib sie dann in eine neue Datei, die ich new.exe genannt habe.zwischen den inhalt von testexe1 und testexe2 schreib ich eine Leerezeile, damit die beiden Programme innnerhalb der Datei voneinander unterschieden werden.
Die new.exe gibt aber immer nur das aus, was die erste Datei die ich in sie hineinschreibe auch ausgibt. Beispiel: Schreibe ich den Inhalt der testexe1 zuerst wird nur Hallo Welt ausgegeben. Schreibe ich den Inhalt der testexe2 zuerst wird nur your fat32 moom ausgegeben.

Auch wenn ich die Leerezeile weglasse funktioniert es nicht...

Wie kann ich es hinbekommen, dass beide Ausgaben ausgegeben werden ???
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

br0de hat geschrieben:Wie kann ich es hinbekommen, dass beide Ausgaben ausgegeben werden ???
Den Quellcode von "testexe.exe" und "testexe2.exe" zusammenfassen und neu kompilieren. Ein kompiliertes Programm enthält immer auch den Punkt an dem es dem OS "bin fertig" sagt. Und dann hört es eben auf und das andere an - mit den Erwartungen, die es mitbringt. Einfach aneinanderhängen ist da nicht drin - es sei denn es handelt sich nicht um kompilierten Code, aber das suggeriert Dein 'rb'.

Was willst Du denn eigentlich machen? Daten von der Ausgabe des einen Programms in die Eingabe des anderen bringen? Dann empfiehlt sich entweder pipen oder das subprocess-Modul. Ansonsten würde ich das Ziel besser beschreiben.

HTH
Christian
Antworten