Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Типы данных


Автор: yo0hoo 5.10.2006, 16:42
Как сделать массив из 1 байта?

Автор: yo0hoo 5.10.2006, 17:21
Вообщем нужно сделать такую структуру где будут содержаться различные типы данных. Как мне это сделать? Если можно пример.

Автор: pythonwin 5.10.2006, 17:27
Код

class c1:
    a1=1
l=[1, 'str', 12.68, {'a2':c1(), 'key1':1, 'key2':'st3', 'k4':45.76}, c1(), (1,'2', 3.45)]


Добавлено @ 17:28 
у http://forum.vingrad.ru/index.php?act=Profile&CODE=03&MID=22723 есть много документации на сайте.
посмотри её пожалуйста! smile

Добавлено @ 17:34 
yo0hoo, это часть какой-то большой задачи?

Автор: yo0hoo 5.10.2006, 17:51
Цитата(pythonwin @  5.10.2006,  17:27 Найти цитируемый пост)
yo0hoo, это часть какой-то большой задачи? 

ага

Автор: pythonwin 5.10.2006, 18:20
Цитата(yo0hoo @  6.10.2006,  00:51 Найти цитируемый пост)

ага

попадробней можешь расказать? smile

Автор: yo0hoo 5.10.2006, 18:45
надо написать что-то типа своей Файловой Системы на питоне(типа S5fs). Это для универа. Для этих целей нужо создать определенную структуру, а без типизации хреново дело(в данном случае)

Автор: pythonwin 5.10.2006, 18:49
Цитата(yo0hoo @  6.10.2006,  01:45 Найти цитируемый пост)
надо написать что-то типа своей Файловой Системы на питоне(типа S5fs). 

прикольно!


Цитата(yo0hoo @  6.10.2006,  01:45 Найти цитируемый пост)
Для этих целей нужо создать определенную структуру, а без типизации хреново дело(в данном случае) 

а хоть какие-то наработки-то есть?

Автор: yo0hoo 5.10.2006, 19:13
В том-то и дело что ничего нет, поэтому уже начинаю думать о связи Cи с Python-ом.

Автор: pythonwin 5.10.2006, 19:32
Цитата(yo0hoo @  6.10.2006,  02:13 Найти цитируемый пост)
В том-то и дело что ничего нет, поэтому уже начинаю думать о связи Cи с Python-ом. 

насколько я знаю - C - это второй родной для питона.

Автор: slav0nic 5.10.2006, 19:36
yo0hoo, я не совсем понял что надо, но для фс наверно нажо юзать struct() там "типизация" имеется (эт для работы с бинарниками модуль)

Автор: pythonwin 5.10.2006, 19:47
Цитата(slav0nic @  6.10.2006,  02:36 Найти цитируемый пост)
yo0hoo, я не совсем понял что надо, но для фс наверно нажо юзать struct() там "типизация" имеется (эт для работы с бинарниками модуль) 

а пример дать сможешь?

Автор: setq 5.10.2006, 20:30
yo0hoo, возможно ещё модуль array стоит посмотреть. Он "умеет" массивы из сишных простых типов. Хотя...


Цитата(yo0hoo @  5.10.2006,  16:42 Найти цитируемый пост)
Как сделать массив из 1 байта?
 Эта фраза достойна стать коаном для медитации дзен.

Автор: yo0hoo 5.10.2006, 20:46
Цитата(slav0nic @  5.10.2006,  19:36 Найти цитируемый пост)
yo0hoo, я не совсем понял что надо, но для фс наверно нажо юзать struct() там "типизация" имеется (эт для работы с бинарниками модуль) 

То что надо smile 

Автор: slav0nic 5.10.2006, 21:27
pythonwin,  могу, я юзал его при "парсинге" бинарных протоколов типа icq, socks4/5 etc
Код

packet=struct.pack("!BBH",self.ver,self.cmd,self.dst_port)+inet_aton(self.dst_addr) #пакуем пакет
...
answ_1byte,answ_2byte, answ_port= struct.unpack("!2BH",data[:4]) #распаковываем пакет

Как параметры задаются формат и сами данные (формит позволяет распаковать бинарный пакет, тк 1 там байт или dword - фиг его знаешь, а например при упаковке \x00\x01 и просто \x01 - разные вещи)
читай туториал;)

Автор: pythonwin 5.10.2006, 21:54
у меня 
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in ?
    struct
NameError: name 'struct' is not defined

Автор: yo0hoo 5.10.2006, 21:58
Цитата(pythonwin @  5.10.2006,  21:07 Найти цитируемый пост)
yo0hoo, как сделаешь - покажешь? 

А что есть желающие продолжить писать файловую систему на python-е? 

Автор: pythonwin 5.10.2006, 22:36
Цитата(yo0hoo @  6.10.2006,  04:58 Найти цитируемый пост)

А что есть желающие продолжить писать файловую систему на python-е?  

IMHO: на C было бы быстрее.

хотя если напишешь и покажешь код, то спасибо скажу smile

Автор: slav0nic 5.10.2006, 23:06
pythonwin, import struct ....

Автор: pythonwin 5.10.2006, 23:44
Цитата(slav0nic @  6.10.2006,  06:06 Найти цитируемый пост)
pythonwin, import struct .... 


slav0nic, спасибо!

Автор: albertn 6.10.2006, 14:40
Так, подождите, я не совсем понял вопроса. Файловой системе не нужен язык программирования, это просто определенная структура данных.
Тогда есть два варинанта:
1. В определенной бинарной переменной хранить виртуальный раздел, и производить с ним операции как с обычным винтом
2. Сделать псевдо файловую структуру (массив объектов) как у Zope, ну или проще. Пример:
Код

filesystem = [{'type':'image','name':'file01.jpg','data'='kjlskdks'},{'type':'image','name':'file02.jpg','data'='kjlskdks'},{'type':'image','name':'file03.jpg','data'='kjlskdks'}]

Ну и тоже-самое с папками.

Так что же именно надо?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)