Форум сайта python.su
2
file = open("myfile", "rb") file.seek(4, 0) #смещение тут указано условно (т.е. не соответствует действительности) data = file.read(10) # считываем имя поля. Внутри dbf-файла для него отводится 10 байт strdata = str("data", encoding = "cp866") print (strdata)
Офлайн
857
>>> b = b'FAM\x00\x00\x00\x00\x00\x00\x00' >>> b b'FAM\x00\x00\x00\x00\x00\x00\x00' >>> b.partition(b'\x00') (b'FAM', b'\x00', b'\x00\x00\x00\x00\x00\x00') >>> >>> b.partition(b'\x00')[0].decode('latin1') 'FAM' >>>
>>> b = b'FAM\x00\x00\x00\x00\x00\x00\x00' >>> b b'FAM\x00\x00\x00\x00\x00\x00\x00' >>> b[:b.index(b'\x00')] b'FAM' >>> b[:b.index(b'\x00')].decode('latin1') 'FAM' >>>
Отредактировано py.user.next (Апрель 5, 2015 00:09:52)
Офлайн
2
Как-то странно. Неужели нету какого-то более простого способа.
Я когда-то давненько писал программу на visual basic, читающую dbf-файл. Как-то я там спокойно получал имена полей или другие текстовые данные из бинарного файла.
Офлайн
88
PlutoТогда отложите изобретение велосипеда в сторону и воспользуйтесь одной из готовых библиотек работы с dbf.
Как-то странно. Неужели нету какого-то более простого способа.Я когда-то давненько писал программу на visual basic, читающую dbf-файл. Как-то я там спокойно получал имена полей или другие текстовые данные из бинарного файла.
Офлайн
857
Офлайн
2
ShamanДык, нету для третьего питона готовых библиотек-то. Ну, нету.
Тогда отложите изобретение велосипеда в сторону и воспользуйтесь одной из готовых библиотек работы с dbf.
Отредактировано Pluto (Апрель 5, 2015 21:17:07)
Офлайн
2
py.user.nextВроде, самый первый модуль таки и для третьего питона подходит. Попробуем.
pypi. dbf
Офлайн