[Python] Rzutowanie

0

Czy w Pythonie jest jakiś odpowiednik 'obleśnego' rzutowania z c/c++ czy reinterpret_cast z c++? (próbowałem szukać na googlach, ale po wpisaniu 'python rzutowanie' nic konkretnego nie znalazło, a 'python cast' dało pełno wyników nie mających z programowaniem nic wspólnego :/) Chciałem sobie napisać wtyczkę do Blendera która miałaby odczytywać format będący formatem binarnym (a nie mam pomysłu jak to odczytać bez rzutowania) a Blender nic poza Pythonem nie odczytuje. Wiem, że mogę napisać program w c++ który przerabiałby takie pliki na 'strawny' dla Pythona format (tak właśnie zrobiłem ;)) ale gdyby odczytywać je bezpośrednio to było by szybciej i sprawniej ;)

0

Nie wiem czy to o to chodzi, ale w pythonie rzutowanie robi się tak:

a='5'
b=int(a)
c=float(a)
0

Mi chodziło raczej o coś w stylu:

char* temp = new char[size];
ifs.read(temp, size);
float* cast = reinterpret_cast<float*>(temp);

Czyli po prostu odczytanie bloku bajtów z pliku i wmówienie kompowi, że ma to uznać za tablicę (w tym wypadku) floatów. To, o czym ty piszesz to takie 'inteligentne' rzutowanie które do tego raczej nie służy ;)

0

Do odczytu i zapisu binarnego jest w pythonie modul struct.
np do odczytu strumienia bajtow zapisanego przez
bin = struct.pack('i', 120)
uzywasz
integer = struct.unpack('i', bin)[0]
Pozostaje jeszcze kwestia czy wejscie jest kodowane w little-endian czy big-endian. Po szczegoly odsyalam do pydoc struct.

0

Próbujesz programować w C/C++ używając pythona. To se ne wyda. Być może zrobisz co potrzebujesz za pomoca wymienionego struct'a, a jeśli nie, to albo proszę prościej co chesz zrobić (nie jak), albo zapraszam na newsy: pl.comp.lang.python.

0

pst -> dzięki, poszukam czegoś w necie o tych structach.
mysz -> być może uznasz mnie za twardogłowego programistę c++, ale zwyczajnie nie znam innej metody na odczytanie pliku binarnego ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1