ďťż
 
Operacje na =?UTF-8?B?cGFtacSZY2k=?= ďťż
 
Operacje na =?UTF-8?B?cGFtacSZY2k=?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Operacje na =?UTF-8?B?cGFtacSZY2k=?=



Daniel =?UTF-8?B?TXLDs3o=?= - 15-08-2007 00:01
Operacje na =?UTF-8?B?cGFtacSZY2k=?=
  Cześć

Czy znacie jakiś sposób, aby w Pythonie zaalokować obszar pamięci o pewnej
wielkości i operować na nim jak na obiekcie plikowym (metody read(),
write(), seek() itp)?

Pozdrawiam
Beorn

--
Daniel 'Beorn' Mróz <beorn@alpha.pl> http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V! PS+ PE++ Y+ PGP++ t- 5 X R !tv b+ DI D++ G++ e h*]
[ r++ y+ ]





Adam Mikuta - 15-08-2007 00:01

  Dnia 14.08.2007 Daniel Mróz <beorn@alpha.pl> napisał/a:

> Czy znacie jakiś sposób, aby w Pythonie zaalokować obszar pamięci o pewnej
> wielkości i operować na nim jak na obiekcie plikowym (metody read(),
> write(), seek() itp)?

cStringIO będzie dobre?
--
Adam "Prawda jest prosta - gdyby było inaczej
każdy głupiec mógłby ją zrozumieć".




Daniel =?UTF-8?B?TXLDs3o=?= - 15-08-2007 00:01

  Adam Mikuta wrote:
>> Czy znacie jakiś sposób, aby w Pythonie zaalokować obszar pamięci o
>> pewnej wielkości i operować na nim jak na obiekcie plikowym (metody
>> read(), write(), seek() itp)?
> cStringIO będzie dobre?
Coś podobnego do (c)StringIO. Te moduły operują raczej na ciągach znaków
unikodowych, a ja chcę zapisywać dane binarne (structem).

Pozdrawiam
Beorn

--
Daniel 'Beorn' Mróz <beorn@alpha.pl> http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V! PS+ PE++ Y+ PGP++ t- 5 X R !tv b+ DI D++ G++ e h*]
[ r++ y+ ]




Rob Wolfe - 15-08-2007 00:01

  Daniel Mróz <beorn@alpha.pl> writes:

> Adam Mikuta wrote:
>>> Czy znacie jakiś sposób, aby w Pythonie zaalokować obszar pamięci o
>>> pewnej wielkości i operować na nim jak na obiekcie plikowym (metody
>>> read(), write(), seek() itp)?
>> cStringIO będzie dobre?
> Coś podobnego do (c)StringIO. Te moduły operują raczej na ciągach znaków
> unikodowych, a ja chcę zapisywać dane binarne (structem).

Takie dylematy będziesz mógł mieć dopiero w Pythonie 3k. :)
Póki co StringIO akceptuje i unikod i 8-bitowe stringi.
Binarne dane można zapisywać bez problemu.

Ale skoro potrzebujesz jakiś ograniczony obszar to może `mmap` się nada.

RW





Filip Wasilewski - 15-08-2007 00:01
=?iso-8859-2?q?Re:_Operacje_na_pami=EAci?=
  On 14 Sie, 18:50, Daniel Mróz <be...@alpha.pl> wrote:
> Adam Mikuta wrote:
> >> Czy znacie jakiś sposób, aby w Pythonie zaalokować obszar pamięci o
> >> pewnej wielkości i operować na nim jak na obiekcie plikowym (metody
> >> read(), write(), seek() itp)?
> > cStringIO będzie dobre?
>
> Coś podobnego do (c)StringIO. Te moduły operują raczej na ciągachznaków
> unikodowych, a ja chcę zapisywać dane binarne (structem).

Nie widze problemu? StringIO zachowuje sie dokladnie jak plik binarny:

>>> import struct
>>> from cStringIO import StringIO
>>> f = StringIO()
>>> f.write(struct.pack(">lh", 1, 2))
>>> f.getvalue()
'\x00\x00\x00\x01\x00\x02'

fw




Daniel =?UTF-8?B?TXLDs3o=?= - 15-08-2007 00:01

  Filip Wasilewski wrote:
>> >> Czy znacie jakiś sposób, aby w Pythonie zaalokować obszar pamięci o
>> >> pewnej wielkości i operować na nim jak na obiekcie plikowym (metody
>> >> read(), write(), seek() itp)?
>> > cStringIO będzie dobre?
>> Coś podobnego do (c)StringIO. Te moduły operują raczej na ciągach znaków
>> unikodowych, a ja chcę zapisywać dane binarne (structem).
> Nie widze problemu? StringIO zachowuje sie dokladnie jak plik binarny:
Hmmm... OK, w takim razie się nada :)

Dziękuję i pozdrawiam
Beorn

--
Daniel 'Beorn' Mróz <beorn@alpha.pl> http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V! PS+ PE++ Y+ PGP++ t- 5 X R !tv b+ DI D++ G++ e h*]
[ r++ y+ ]




Daniel =?UTF-8?B?TXLDs3o=?= - 15-08-2007 00:01

  Rob Wolfe wrote:
>>>> Czy znacie jakiś sposób, aby w Pythonie zaalokować obszar pamięci o
>>>> pewnej wielkości i operować na nim jak na obiekcie plikowym (metody
>>>> read(), write(), seek() itp)?
>>> cStringIO będzie dobre?
>> Coś podobnego do (c)StringIO. Te moduły operują raczej na ciągach znaków
>> unikodowych, a ja chcę zapisywać dane binarne (structem).
> Takie dylematy będziesz mógł mieć dopiero w Pythonie 3k. :)
> Póki co StringIO akceptuje i unikod i 8-bitowe stringi.
> Binarne dane można zapisywać bez problemu.
>
> Ale skoro potrzebujesz jakiś ograniczony obszar to może `mmap` się nada.
Myślałem nad tym, jednakże o ile dobrze rozumiem dokumentację, do mmap muszę
przekazać deskryptor istniejącego, fizycznego pliku. U mnie zawartość
obszaru pamięci nie będzie dokładnym odzwierciedleniem pliku, a nawet
poprzez "doklejanie" kolejnych obszarów będzie się rozszerzała, a
synchronizacja będzie wprowadzała zmiany w danych (konkretnie to odrzucała
informacje, które w pliku są niepotrzebne - dirty blocki).

Pozdrawiam
Beorn

--
Daniel 'Beorn' Mróz <beorn@alpha.pl> http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V! PS+ PE++ Y+ PGP++ t- 5 X R !tv b+ DI D++ G++ e h*]
[ r++ y+ ]




Adam Mikuta - 15-08-2007 00:01

  Dnia 14.08.2007 Rob Wolfe <rw@smsnet.pl> napisał/a:

> Takie dylematy będziesz mógł mieć dopiero w Pythonie 3k. :)
> Póki co StringIO akceptuje i unikod i 8-bitowe stringi.
> Binarne dane można zapisywać bez problemu.

Jak już tak o tym 3k... co się zmieni pod tym względem?
--
Adam "Prawda jest prosta - gdyby było inaczej
każdy głupiec mógłby ją zrozumieć".




Bart Ogryczak - 15-08-2007 00:01
=?iso-8859-2?q?Re:_Operacje_na_pami=EAci?=
  On 14 ago, 17:46, Daniel Mróz <be...@alpha.pl> wrote:
> Cześć
>
> Czy znacie jakiś sposób, aby w Pythonie zaalokować obszar pamięcio pewnej
> wielkości i operować na nim jak na obiekcie plikowym (metody read(),
> write(), seek() itp)?

Modul mmap




Rob Wolfe - 16-08-2007 00:01

  Daniel Mróz <beorn@alpha.pl> writes:

> Rob Wolfe wrote:
>>>>> Czy znacie jakiś sposób, aby w Pythonie zaalokować obszar pamięci o
>>>>> pewnej wielkości i operować na nim jak na obiekcie plikowym (metody
>>>>> read(), write(), seek() itp)?
>>>> cStringIO będzie dobre?
>>> Coś podobnego do (c)StringIO. Te moduły operują raczej na ciągach znaków
>>> unikodowych, a ja chcę zapisywać dane binarne (structem).
>> Takie dylematy będziesz mógł mieć dopiero w Pythonie 3k. :)
>> Póki co StringIO akceptuje i unikod i 8-bitowe stringi.
>> Binarne dane można zapisywać bez problemu.
>>
>> Ale skoro potrzebujesz jakiś ograniczony obszar to może `mmap` się nada.
> Myślałem nad tym, jednakże o ile dobrze rozumiem dokumentację, do mmap muszę
> przekazać deskryptor istniejącego, fizycznego pliku. U mnie zawartość

Zgadza się.

> obszaru pamięci nie będzie dokładnym odzwierciedleniem pliku, a nawet
> poprzez "doklejanie" kolejnych obszarów będzie się rozszerzała, a
> synchronizacja będzie wprowadzała zmiany w danych (konkretnie to odrzucała
> informacje, które w pliku są niepotrzebne - dirty blocki).

Czyli pozostaje StringIO.

RW




Rob Wolfe - 16-08-2007 00:01

  Adam Mikuta <adammikutaWytnij@gmail.wyt.nij.com> writes:

> Dnia 14.08.2007 Rob Wolfe <rw@smsnet.pl> napisał/a:
>
>> Takie dylematy będziesz mógł mieć dopiero w Pythonie 3k. :)
>> Póki co StringIO akceptuje i unikod i 8-bitowe stringi.
>> Binarne dane można zapisywać bez problemu.
>
> Jak już tak o tym 3k... co się zmieni pod tym względem?

Nastąpi wyraźne rozróżnienie między ciągami znaków, a ciągami
bajtów (model znany np. z javy). Wszystkie stringi w Pythonie 3.0
będą zawierały tylko znaki unikodowe. Dla danych binarnych
powstanie nowy mutowalny typ `bytes`. W związku z tym
odczytanie danych binarnych z pliku (tryb 'rb') spowoduje
utworzenie obiektu `bytes`, a nie `str`, jak również nie będzie
możliwe bezpośrednie zapisanie stringu do pliku binarnego
(tryb 'wb').
Analogicznie buforami w pamięci będą odpowiednio dla stringów
StringIO (tylko unikod) i BytesIO (dane binarne).
Po szczegóły odsyłam tutaj:

http://www.artima.com/weblogs/viewpo...?thread=208549
http://www.python.org/dev/peps/pep-0358/
http://www.python.org/dev/peps/pep-3116/

RW




Adam Mikuta - 16-08-2007 00:01

  Dnia 15.08.2007 Rob Wolfe <rw@smsnet.pl> napisał/a:

> (...)

Dzięki za rozjaśnienie :)
--
Adam "Prawda jest prosta - gdyby było inaczej
każdy głupiec mógłby ją zrozumieć".
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [mysql] (4.1 lub nowszy) pobieranie =?UTF-8?Q?rekord=C3=B3w?="minimalnych" problem z kodowaniem UTF-8 przy robieniu kopii zapasowej mysqldump i kodowanie utf-8 (brak polskich znakow) Poziome, pionowe paski lub siatka - jak =?UTF-8?B?enJvYmnEhz8g?= =?iso-8859-2?q?utf-8_i_problem_z_z=B3?= [postgresql] jdbc i =?UTF-8?B?d3lqxIV0a2k=?= z bazy mysql, utf-8 i blednie wyciagane znaki [MSSQL2000] Jak wyeksportować .txt w formacie UTF-8?? phpSolutions - szewc bez =?UTF-8?B?YnV0w7N3?= [MySQL] REGEXP =?UTF-8?B?ZG9rxYJhZG5pZSBkd2Egem5ha2k=?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • tejsza.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com