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; друк рядка
Кожен рядок буде диктує з ключем для кожного поля в наборі даних. Значення будуть як Юнікод рядок, число з плаваючою крапкою або INT, залежно від типу, зазначеного у файлі для цього поля.
Отримання Інформація про фото
Якщо у вас є об'єкт XportReader, є кілька властивостей і методів, які дадуть вам докладну інформацію про фото:
- Reader.file: базовий об'єкт файлу Python (дивіться наступний розділ).
- Reader.record_start: позиція (в байтах) у файлі, де записи починаються (дивись наступний розділ).
І NBSP; reader.record_length: довжина (в байтах) кожного запису (дивіться наступний розділ).
- Reader.record_count (): число записів у файлі. (Попередження: цей буде прагнути до кінця файлу, щоб визначити довжину файлу).
- Reader.file_info і reader.member_info: пророкує, що містять інформацію про те, коли і як набір даних був створений.
- Reader.fields: список полів в наборі даних. Кожне поле DICT, що містить наступні ключі, скопійовані з специфікації:
І NBSP; структура NameStr {
І NBSP; коротка ntype; / * Змінна типу: 1 = число, 2 = CHAR * /
І NBSP; коротка nhfun; / * Хеш NNAME (завжди 0) * /
І NBSP; * короткий field_length; / * Довжина змінної в спостережних * /
І NBSP; коротка nvar0; / * Варнум * /
І NBSP; * Назва char8; / * Ім'я змінної * /
І NBSP; * char40 етикетки; / * Ярлик змінної * /
І NBSP; char8 Nform; / * Ім'я форматі * /
І NBSP; коротка НФЛ; / * Поле Формат довжини або 0 * /
І NBSP; * короткий num_decimals; / * Формат кількість десяткових знаків * /
І NBSP; коротка NFJ; / * 0 = вирівнювання по лівому краю, 1 = ПРАВО ТІЛЬКИ * /
І NBSP; обвуглюється nfill [2]; / * (Не використовувався, для вирівнювання і майбутнє) * /
І NBSP; char8 niform; / * Ім'я вхідного форматі * /
І NBSP; коротка nifl; / * Інформу атрибут довжини * /
І NBSP; коротка nifd; / * Інформу кількість десяткових знаків * /
І NBSP; довгі НКО; / * Позиція ВАРТОСТІ в спостережних * /
І NBSP; символ інше [52]; / * Інші поля не мають значення * /
І NBSP;};
і NBSP; Примітка: предмети з зірками були перейменовані з коротких імен, зазначених у специфікації. Оскільки це альфа-версія, інші предмети можуть бути перейменовані в майбутньому, якщо хтось говорить мені, що вони.
Довільний доступ до записів
Якщо ви хочете отримати доступ на певні записи, замість перебору, ви можете використовувати стандартні функції доступу до файлів мови Python і трохи математики.
Отримати 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

Коментар не знайдено
додати коментар
Включіть картинки!