XPORTは、データセットを公開するため、米国政府機関の束で使用されるバイナリファイル形式は あなたが戻って1988年に日本IBMのメインフレーム上のデータファイルを読み込むしようとしていた場合は多くの意味を作った。
のはどうすればそれを使うのですか?の
それではこの短いと甘いを作ろう:
輸入XPORT
リーダーとしてxport.XportReader(xport_file)と:
 読者の行のために:
 印刷行
各行は、データセット内の各フィールドのキーと辞書になります。値は、そのフィールドのファイルで指定されたタイプに応じて、Unicode文字列、フロートまたはint型のどちらかになります。
の取得ファイル情報の
あなたがXportReaderオブジェクトを取得したら、あなたのファイルの詳細を与えるいくつかのプロパティとメソッドがあります。
- reader.file:基本となるPythonのファイルオブジェクト(次のセクションを参照)。
- reader.record_start:レコードが開始ファイルに(バイト)の位置(次のセクションを参照)。
  reader.record_length:各レコードの長さ(バイト数)(次のセクションを参照)。
- reader.record_count():ファイル内のレコード数。 (警告:これは、ファイルの長さを決定するために、ファイルの末尾に努めます。)
- reader.file_infoとreader.member_info:データセットが作成されたときに、どのようにについての情報を含むのシリアライザ。
- reader.fields:データセット内のフィールドのリスト。各フィールドは、スペックからコピー次のキーを含む辞書です。
 構造体NAMESTR {
 短いntype。 / *変数TYPE:1 = NUMERIC、2 = CHAR * /
 短いnhfun。 / * NNAME(常に0)のハッシュ* /
  *短いfield_length。 / *観察では変数の長さ* /
 短いnvar0。 / * VARNUM * /
  * char8名。 / *変数の名前* /
  * char40ラベル。 / *変数のLABEL * /
  char8 nform。 / *形式の名前* /
 短いNFL。 / * FORMATフィールドの長さや0 * /
  *短いnum_decimals。小数点以下の桁/ *フォーマット番号* /
 短いnfj。 / * 0 =左揃え、1 = RIGHT JUST * /
  nfill char型[2]; / *(アライメントと将来のために、未使用)* /
  char8 niform。 / *入力形式の名前* /
 短いnifl。 / * INFORMATの長さ属性* /
 短いnifd。小数点以下の桁/ * INFORMAT番号* /
 長NPOなど。 / *観察では値の位置* /
  char型の残り[52]; / *残りのフィールドは無関係です* /
とをタップ;};
<強い>&NBSP;注:の星を持つアイテムがspecで与えられた短い名前から名前が変更されました。これはアルファリリースですので、誰かが、彼らが何をしている私に語った場合、他の項目は、将来的には、名前を変更することもできる。
記録へのランダムアクセスの
あなたが代わりに繰り返し処理のため、特定のレコードにアクセスする場合は、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()
(この最後の例では、パディングバイトがあるかもしれないので、我々は、ファイルの末尾から求めることができないことに注意してください。古き良き固定幅バイナリファイル形式を。)
の修正/このコードを盗むしてください!の
それはほとんどのプログラミング言語での標準政府のデータ形式を読み込むための簡単な方法がなかったことをばかげて見えたので、私はこれを書いている。私は物事が間違っ得ている場合があります。あなたがproperyをデコードしていないファイルを見つけた場合は、プル要求を送信します。公式スペックはこちらです。それは、80年代からのバイナリファイル形式のための驚くほど簡単です。
また、お気に入りのプログラミング言語のための独自のライブラリを記述するためにベースとして、このコードを使用すること自由に感じなさい。 。政府のデータにアクセス、男である必要があります。
の要件の
- のPythonます。
コメントが見つかりません