Seite 1 von 1

codeing problem ^^

Verfasst: Freitag 20. Mai 2005, 08:06
von Rider
hi!
ich wollte mal folgendes versuchen zu coden:
ich hab nen file der (in hex) so aussieht:

\x43\xac\xf3\xb1\x98\x7a\x54\x0a

also einfach diese 8 byte.

so jetz will ich nach jedem byte ein "a" (\x41) einfügen, so dass ich 8 neue files bekomme mit

file1:
\x43\x41\xac\xf3\xb1\x98\x7a\x54\x0a

file2:
\x43\xac\x41\xf3\xb1\x98\x7a\x54\x0a

file3:
\x43\xac\xf3\x41\xb1\x98\x7a\x54\x0a

file4:
\x43\xac\xf3\xb1\x41\x98\x7a\x54\x0a
....

file8:
\x43\xac\xf3\xb1\x98\x7a\x54\x0a\x41


ich hab nur keinen plan wie ich mit sowas anfangen soll... :S

hoffe ihr könnt mir damit helfen - wär ne riesen sache ;)

grüße,
Rider

Verfasst: Freitag 20. Mai 2005, 09:52
von Rider
hmm ich hab schonmal bissl mit f.seek und f.write rumgespielt. von daher kann ich jetz bissl gezielter fragen

- kann ich den kompletten inhalt eines files in einen string konvertieren? wenn das mögl ist wüsste ich glaub ich schon wie ichs mache.

- wie kann ich sachen in einen file speichern den ich nicht grad mit open('tmp.txt', 'r+') geöffnet habe?

ich würd halt gern nen loop machen dass er die einzelnen byte durchgeht, mein "\x41" einfügt und dann den jeweiligen string wieder in ne neue datei abspeichert.

Verfasst: Freitag 20. Mai 2005, 10:02
von joe
Hi

Vielleicht so:

Code: Alles auswählen

achtbytes = open("file").read(8)
for i in range(8):
    f = open("file"+str(i),"w")
    f.write(achtbytes[:i+1])
    f.write("a")
    f.write(achtbytes[i+1:])
    f.close()
joe

Verfasst: Freitag 20. Mai 2005, 10:22
von Rider
hey danke! funktioniert super :)