xport

Software captura de pantalla:
xport
Detalles de software:
Versión: 0.1.0
Fecha de carga: 14 Apr 15
Promotor: Jack Cushman
Licencia: Libre
Popularidad: 0

Rating: 4.0/5 (Total Votes: 1)

xport es el formato de archivo binario utilizado por un grupo de agencias del gobierno de Estados Unidos por la publicación de los conjuntos de datos. & Nbsp; Se hizo mucho sentido si estuviera tratando de leer archivos de datos del mainframe de IBM en 1988.
¿Cómo lo utilizo?
Vamos a hacer este corto y dulce:
xport importación
con xport.XportReader (xport_file) como lector:
& Nbsp; para la fila en el lector:
& Nbsp; fila de impresión
Cada fila será un dict con una clave para cada campo en el conjunto de datos. Los valores serán una cadena Unicode, un flotador o un int, dependiendo del tipo especificado en el archivo para ese campo.
Obtener información de archivo
Una vez que tenga un objeto XportReader, hay algunas propiedades y métodos que le darán detalles acerca del archivo:
- Reader.file: el objeto fichero Python subyacente (véase la sección siguiente).
- Reader.record_start: la posición (en bytes) en el archivo donde comienzan los registros (véase la sección siguiente).
& Nbsp; reader.record_length: la longitud (en bytes) de cada registro (véase la sección siguiente).
- Reader.record_count (): número de registros en el archivo. (Advertencia: este buscará la final del archivo para determinar la longitud del archivo.)
- Reader.file_info y reader.member_info: predice que contienen información acerca de cuándo y cómo se creó el conjunto de datos.
- Reader.fields: lista de campos del conjunto de datos. Cada campo es un diccionario que contiene las siguientes teclas, copiados de la especificación:
& Nbsp; struct nameStr {
& Nbsp; a corto nType; / * TIPO VARIABLE: 1 = NUMÉRICO, 2 = CHAR * /
& Nbsp; a corto nhfun; / * HASH DE NNAME (siempre 0) * /
& Nbsp; * field_length corto; / * LONGITUD DE VARIABLE EN OBSERVACIÓN * /
& Nbsp; a corto nvar0; / * * VARNUM /
& Nbsp; * Nombre char8; / * NOMBRE DE VARIABLE * /
& Nbsp; * etiqueta char40; / * ETIQUETA DE VARIABLE * /
& Nbsp; Nform char8; / * NOMBRE DE FORMATO * /
& Nbsp; a corto nfl; / * CAMPO LONGITUD FORMATO O 0 * /
& Nbsp; * num_decimals cortos; / * FORMATO número de decimales * /
& Nbsp; a corto NFJ; / * 0 = justificación a la izquierda, 1 = derecha justo * /
& Nbsp; charlas nfill [2]; / * (NO UTILIZADO, PARA ALINEACIÓN Y FUTURO) * /
& Nbsp; niform char8; / * NOMBRE DE ENTRADA FORMATO * /
& Nbsp; a corto NIFL; / * INFORMAT atributo de longitud * /
& Nbsp; a corto nifD; / * INFORMAT número de decimales * /
& Nbsp; npos largos; / * POSICIÓN DE VALOR EN OBSERVACIÓN * /
& Nbsp; Char resto [52]; / * Campos restantes son irrelevantes * /
& Nbsp;};
& nbsp; NOTA: elementos con estrellas han cambiado de nombre a partir de los nombres cortos dadas en la especificación. Como se trata de una versión alpha, otros elementos pueden ser renombrados en el futuro, si alguien me dice para qué son.
Acceso aleatorio a los registros
Si desea acceder a los registros específicos, en lugar de la iteración, puede utilizar las funciones de acceso a archivos estándar de Python y un poco de matemáticas.
Obtener registro número 1000:
reader.file.seek (reader.record_start + reader.record_length * 1000, 0)
reader.next ()
Obtener expediente ante más de un reciente descabellada:
reader.file.seek (-reader.record_length * 2, 1)
reader.next ()
Obtén último registro:
reader.file.seek (reader.record_start + reader.record_length * (reader.record_count () - 1), 0)
reader.next ()
(En este último ejemplo, tenga en cuenta que no podemos buscamos desde el final del archivo, porque puede haber bytes de relleno. Los buenos viejos formatos de archivo binario de ancho fijo.)
Por favor, corrija / robar este código!
Escribí esto porque me parecía ridículo que no había manera fácil de leer un formato de datos estándar del gobierno en la mayoría de los lenguajes de programación. Pude haber conseguido cosas mal. Si usted encuentra un archivo que no decodificar propery, envíe una solicitud de extracción. La especificación oficial está aquí. Es sorprendentemente sencillo para un formato de archivo binario desde los años 80.
Por favor no dude en utilizar este código como base para escribir su propia biblioteca para su lenguaje de programación favorito. . Los datos del gobierno deben ser accesibles, el hombre

Requisitos :

  • Python

Comentarios a la xport

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!