Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Ispis u binarnu datoteku

[es] :: Python :: Ispis u binarnu datoteku

[ Pregleda: 3684 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Alef
Viktor Kerkez
Novi Sad

Član broj: 505
Poruke: 188
*.041net.co.yu.



Profil

icon Ispis u binarnu datoteku18.01.2005. u 20:39 - pre 234 meseci
Kako da upisujem u datoteku bajt po bajt, a da ne moram da petljam sa stringovima? Prekopao sam dokumentaciju i nikako ne uspevam da pronađem…

Znači, recimo:
Code:

    f = open("tmp.dat", "wb")
    i = 255
    f.ispis(i)
    f.close()

Code:

    # hexdump tmp.dat
    0000000 00FF
    0000001
 
Odgovor na temu

toroman
Srećko Toroman
www.wowd.com
Beograd / Banja Luka

Član broj: 52673
Poruke: 159
*.dialup.blic.net.

Sajt: toroman.wordpress.com


Profil

icon Re: Ispis u binarnu datoteku23.03.2005. u 21:15 - pre 232 meseci
Evo prostudiraj ovaj kod, nadam se da će ti pomoći

Code:

"""
Autor: Srećko Toroman, 
http://www.znalac.tk
"""

import StringIO         # za testiranje, virtuelni fajl

def byte(number, fileobj):
    """
        Ova funkcija zapisuje broj u ascii formatu. Dakle, ako hoces
        da zapises
          i=255
        Onda :
          f= file("tmp.dat","rb")
          byte(i,f)
          f.close()

        I to je to. Mozda ima neki bug... Uglavom mozes da zapises
        i vise byteova odjednom, kao sto je prikazano dole u primjeru
    """
    while number>0:
        b=number % 256;
        fileobj.write(chr(b))
        number/=256;

a=StringIO.StringIO()       # virtuelni fajl
byte(65,a)                  # upisuje ASCII A
a.write("TheLarch")         # normalno upisivanje stringa
byte(65+66*256,a)           # upisuje jos ASCII AB


a.seek(0)                   # postavlja na pocetak radi citanja
print a.read()




Uglavnom, nisam morao ovoliko da filozofiram, dovoljno bi bilo da sam ti rekao chr(i) :)
Programeri su odgovorili na Hamletovo pitanje "Biti il ne biti?" :
0x2B | ~0x2B = 0xFF
(kao ono - ff - teško pitanje!)
 
Odgovor na temu

Alef
Viktor Kerkez
Novi Sad

Član broj: 505
Poruke: 188
*.28.eunet.yu.



Profil

icon Re: Ispis u binarnu datoteku23.03.2005. u 21:43 - pre 232 meseci
Pa ovo je upravo ono što sam nazvao „petljanje sa stringovima” . Tako sam otprilike i rešio stvar, samo mi je bilo čudno da ne postoji neka builtin varijanta C-ovog fread, fwrite. Listao dokumentaciju, google-ao… i ništa, pa reko mora da mi je promaklo, aj da pitam…
 
Odgovor na temu

toroman
Srećko Toroman
www.wowd.com
Beograd / Banja Luka

Član broj: 52673
Poruke: 159
*.dialup.blic.net.

Sajt: toroman.wordpress.com


Profil

icon Re: Ispis u binarnu datoteku24.03.2005. u 14:52 - pre 232 meseci
Ne razumem šta je tu "petljanje". Nema tu nikakvog petljanja. Ako insistiraš, pogledaj biblioteku struct.
Programeri su odgovorili na Hamletovo pitanje "Biti il ne biti?" :
0x2B | ~0x2B = 0xFF
(kao ono - ff - teško pitanje!)
 
Odgovor na temu

Alef
Viktor Kerkez
Novi Sad

Član broj: 505
Poruke: 188
*.041net.co.yu.



Profil

icon Re: Ispis u binarnu datoteku25.03.2005. u 00:44 - pre 232 meseci
Ne, nisi me shvatio… Znam ja za sve te varijante, samo se meni nije nikako svidela ideja da se u datoteku direktno mogu upisivati samo nizovi karaktera (to sam nazvao „petljancija sa stringovima”). A pošto je python jako tipiziran nema mešanja tipova int i char kao u C-u, na koji sam bio navikao… Pa sam mislio da mi je nešto promaklo…
 
Odgovor na temu

toroman
Srećko Toroman
www.wowd.com
Beograd / Banja Luka

Član broj: 52673
Poruke: 159
*.dialup.blic.net.

Sajt: toroman.wordpress.com


Profil

icon Re: Ispis u binarnu datoteku25.03.2005. u 16:40 - pre 232 meseci
Aj dobro, mislim da mi je jasno šta tačno hoćeš... Byte po byte. E pa, ako baš insistiraš, za takav posao, nije nikakva mudrost napisati python lib u C-u koji ima funkciju writebyte :) ali, ne preporučujem ti to, mislim, toga si i sam najvjerovatnije svjestan, ali opet razumijem te, tebe samo interesuje postoji li to ili ne, right? E pa, i da NAM je to promaklo, vjeruj mi, mislim da ne propuštamo mnogo :)

Pozdrav svim python programerima!
Programeri su odgovorili na Hamletovo pitanje "Biti il ne biti?" :
0x2B | ~0x2B = 0xFF
(kao ono - ff - teško pitanje!)
 
Odgovor na temu

toroman
Srećko Toroman
www.wowd.com
Beograd / Banja Luka

Član broj: 52673
Poruke: 159
*.dialup.blic.net.

Sajt: toroman.wordpress.com


Profil

icon Re: Ispis u binarnu datoteku02.04.2005. u 07:52 - pre 231 meseci
Osim toga, zašto bi neki visoko objektno orijentisan jezik kao python omogucavao, po srodstvu, assemblersku funkciju? Mislim, uopšte ne treba da nas čudi to. Po meni je to sasvim normalno (sad nakon što sam malo razmislio). Python je veoma razvijen jezik. fread i fwrite bili bi suvišni u jednom ovakvom jeziku... Valjda ... Poz.
Programeri su odgovorili na Hamletovo pitanje "Biti il ne biti?" :
0x2B | ~0x2B = 0xFF
(kao ono - ff - teško pitanje!)
 
Odgovor na temu

[es] :: Python :: Ispis u binarnu datoteku

[ Pregleda: 3684 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.