xport

Софтуер снимки:
xport
Софтуер детайли:
Версия: 0.1.0
Дата на качване: 14 Apr 15
Розробник: Jack Cushman
Разрешително: Безплатно
Популярност: 0

Rating: 4.0/5 (Total Votes: 1)

Експортиране е двоичен файлов формат, използван от един куп САЩ правителствени агенции за публикуване на набори от данни и Nbsp;. Той направи много смисъл, ако сте се опитвали да чете файлове с данни на вашия IBM мейнфрейм през 1988 г..
<Силен> Как да го използвам?
Нека да направим това кратко и сладко:
внос Експортиране
с xport.XportReader (xport_file) като читател:
& Nbsp; за ред в четец:
& Nbsp; печат ред
Всеки ред ще бъде Dict с ключ за всяко поле в данните. Стойностите трябва да бъде или Unicode стринг, плувка или пад, в зависимост от вида, посочен в досието за тази област.
<Силен> Първи инфо файл
След като вече имате XportReader обект, има няколко свойства и методи, които ще ви даде подробна информация за файл:
- Reader.file: основната Python файл обекта (виж следващия раздел).
- Reader.record_start: позицията (в байтове) във файла, където започват записи (виж следващия раздел).
& Nbsp; reader.record_length: дължината (в байтове) на всеки запис (виж следващия раздел).
- Reader.record_count (): брой на записите във файла. (Внимание: това ще се стреми към края на файла, за да се определи дължината на файла.)
- Reader.file_info и reader.member_info: dicts, съдържащи информация за това кога и как е създаден набор от данни.
- Reader.fields: списък на полета в набора от данни. Всяко поле е Dict съдържаща следните клавиши, копирани от спец:
& Nbsp; структура NAMESTR {
& Nbsp; кратко ntype; / * Тип променлива: 1 = числови, 2 = CHAR * /
& Nbsp; кратко nhfun; / * Хеш NNAME (винаги 0) * /
& Nbsp; * кратко field_length; / * Дължината на променливата в наблюдението * /
& Nbsp; кратко nvar0; / * VARNUM * /
& Nbsp; * име char8; / * Име на променливата * /
& Nbsp; * етикет char40; / * LABEL с променлива * /
& Nbsp; char8 nform; / * ИМЕ НА ФОРМАТ * /
& Nbsp; кратко NFL; / * Поле Формат дължина или 0 * /
& Nbsp; * къси num_decimals; / * FORMAT НОМЕР НА DECIMALS * /
& Nbsp; кратко nfj; / * 0 = НАЛЯВО обосновка 1 = десен JUST * /
& Nbsp; Чар nfill [2]; / * (Неизползвани, за да приведат И БЪДЕЩЕ) * /
& Nbsp; char8 niform; / * ИМЕ INPUT FORMAT * /
& Nbsp; кратко nifl; / * ИНФОРМАТ ДЪЛЖИНА ATTRIBUTE * /
& Nbsp; кратко nifd; / * ИНФОРМАТ НОМЕР НА DECIMALS * /
& Nbsp; дълги НПО; / * ПОЗИЦИЯ НА СТОЙНОСТ ПО НАБЛЮДЕНИЕ * /
& Nbsp; Чар почивка [52]; / * Останалите полета са ирелевантни * /
& Nbsp;};
<Силен> & Nbsp; Забележка: артикули с звезди са преименувани от кратки имена, дадени в спецификацията. Тъй като това е алфа версия, други предмети могат да се преименуват в бъдеще, ако някой ми казва какво са за.
<Силен> Random достъп до записи
Ако искате да получите достъп до специфични записи, вместо итерации, можете да използвате стандартните функции за достъп до файловете Питон и малко математика.
Вземи 1000на запис:
reader.file.seek (reader.record_start + reader.record_length * 1000, 0)
reader.next ()
Вземи запис преди последната една пресилено:
reader.file.seek (-reader.record_length * 2, 1)
reader.next ()
Вземете последния запис:
reader.file.seek (reader.record_start + reader.record_length * (reader.record_count () - 1), 0)
reader.next ()
(В този последен пример, имайте предвид, че не можем да се потърси от края на файла, защото може да има подложка байта. Добрите стари фиксирана широчина двоични файлови формати.)
<Силен> Моля, поправете / открадне този код!
Написах това, защото то изглежда нелепо, че няма лесен начин да се чете стандартен формат правителствени данни в повечето програмни езици. Аз може да съм намерила нещата погрешно. Ако откриете файл, който не се декодира на недвижими имоти, изпратете запитване гостилница. Официалният спец е тук. Това е изненадващо прост за двоичен файл формат от 80-те години.
Моля също така да се чувстват свободни да използвате този код като база да напишете своя собствена библиотека за любимият ви език за програмиране. . Правителствените данни трябва да бъдат достъпни, мъж

<силни> Изисквания :

  • Python

Коментари към xport

Коментари не е намерена
добавите коментар
Включете на изображения!