file = open("myfile", "rb") file.seek(4, 0) #смещение тут указано условно (т.е. не соответствует действительности) data = file.read(10) # считываем имя поля. Внутри dbf-файла для него отводится 10 байт strdata = str("data", encoding = "cp866") print (strdata)
Считывание идёт из dbf-файла с dos-кодировкой
1. Правильно ли я указываю encoding?
2. strdata получается, например, такая: “FAM\x00\x00\x00\x00\x00\x00\x00”
Надо получить просто “FAM”
Это имя одного из полей. Максимальная длина его 10-байт (символов). Поэтому столько и считываю. Заранее знать сколько там символов в имени поля я не могу. Как избавиться от этих х00?
3. Кроме модуля struct что-нибудь есть для конвертации последовательности байтов в десятичные числа?