xport

Yazılım ekran görüntüsü:
xport
Yazılım detaylar:
Versiyon: 0.1.0
Qayıt: 14 Apr 15
Geliştirici: Jack Cushman
Lisans: Ücretsiz
Popülerlik: 0

Rating: 4.0/5 (Total Votes: 1)

.

Dışa Aktar ikili dosya veri setleri yayınlamak için Amerika Birleşik Devletleri devlet kurumları bir grup tarafından kullanılan biçimi ve nbsp; geri 1988 yılında IBM anabilgisayar veri dosyalarını okumaya çalışıyorum olsaydı anlamda bir sürü yaptı.
Nasıl kullanabilirim?
Şimdi bu kısa ve tatlı yapalım:
ithalat Dışa Aktar
okuyucu olarak xport.XportReader (xport_file) ile:
& Nbsp; okuyucuya satır için:
& Nbsp; baskı satır
Her satır veri kümesi içinde her alan için bir anahtar ile bir dict olacak. Değerler bu alan için dosyasında belirtilen türüne bağlı olarak, bir unicode dize, bir şamandıra veya bir int ya olacak.
Başlarken dosya bilgileri
Bir XportReader nesnesi var, size dosya hakkında bilgi verecektir birkaç özellikleri ve yöntemleri vardır:
- Reader.file: altta yatan Python dosya nesnesi (bir sonraki bölüme bakınız).
- Reader.record_start: kayıtları başlangıç ​​dosyasında (bayt) pozisyonu (bir sonraki bölüme bakınız).
& Nbsp; reader.record_length: (bayt) uzunluğu her kaydın (bir sonraki bölüme bakınız).
- Reader.record_count (): dosyasındaki kayıtların sayısı. (Uyarı: Bu dosya uzunluğunu belirlemek için dosyanın sonuna arayacağız.)
- Reader.file_info ve reader.member_info: veri kümesi oluşturulduğunda ve nasıl hakkında bilgi içeren dicts.
- Reader.fields: veri kümesi içinde alanların listesi. Her alan spec kopyalanan aşağıdaki tuşları içeren bir dict olduğunu:
& Nbsp; struct NAMESTR {
& Nbsp; kısa nType; / * DEĞİŞKEN TİPİ: 1 = SAYISAL, 2 = KAR * /
& Nbsp; kısa nhfun; / * Nname (her zaman 0) VE HASH * /
& Nbsp; * Kısa field_length; / * GÖZLEM değişkenin UZUNLUĞU * /
& Nbsp; kısa nvar0; / * Varnum * /
& Nbsp; * char8 adı; / * DEĞİŞKEN ADI * /
& Nbsp; * char40 etiketi; / * DEĞİŞKEN VE ETİKET * /
& Nbsp; char8 nform; / * FORMAT ADI * /
& Nbsp; kısa nfl; / * FORMAT ALAN UZUNLUĞU VEYA 0 * /
& Nbsp; * Kısa num_decimals; Ondalık / * BİÇİMİ SAYISI * /
& Nbsp; kısa NFJ; / * 0 = SOL GEREKÇE, 1 = SAĞ SADECE * /
& Nbsp; nfill ateşinde [2]; / * (UNUSED, DOĞrULUĞUNDA VE GELECEK İÇİN) * /
& Nbsp; char8 niform; / * GİRİŞ FORMAT ADI * /
& Nbsp; kısa NifL; / * INFORMAT UZUNLUĞU ÖZNİTELİK * /
& Nbsp; kısa nifd; Ondalık / * INFORMAT SAYISI * /
& Nbsp; uzun KAGKlar; / * GÖZLEM İÇİNDE DEĞER POZİSYONU * /
& Nbsp; Char dinlenme [52]; / * Kalan alanlar alakasız * /
& Nbsp;};
& nbsp; NOT: yıldızlı olan öğeler spec verilen kısa isimleri yeniden adlandırıldı. Bu bir alfa sürümü olduğundan birisi için ne konum bana söyler, diğer öğeler, gelecekte yeniden adlandırılabilir.
Kayıtlara Rasgele erişim
Yerine iterating olan, belirli kayıtları erişmek istiyorsanız, size Python'un standart dosya erişim fonksiyonları ve biraz matematik kullanabilirsiniz.
1000. kayıt alın:
reader.file.seek (reader.record_start + reader.record_length * 1000, 0)
reader.next ()
En son bir zorlama önce kayıt alın:
reader.file.seek (-reader.record_length * 2, 1)
reader.next ()
Son kayıt alın:
reader.file.seek (reader.record_start + reader.record_length * (reader.record_count () - 1), 0)
reader.next ()
(Bu son örnekte, dolgu bayt olabilir çünkü, dosyanın sonundan aday olmayacağını unutmayın. İyi eski sabit genişlikli ikili dosya formatları.)
Çalmak / Bu kodu düzeltmek Lütfen!
En programlama dilleri standart hükümet veri formatında okumak için kolay bir yolu olduğunu saçma görünüyordu çünkü bu kadar yazdım. Ben şeyler yanlış kazanılmış olabilir. Eğer propery çözmek olmayan bir dosyayı bulursanız, bir çekme isteği göndermek. Resmi spec burada. 80'lerde bir ikili dosya biçimi için şaşırtıcı biçimde basittir.
Ayrıca favori programlama dili için kendi kütüphane yazmak için bir üs olarak bu kodu kullanmak için çekinmeyin. . Hükümet veri adam, erişilebilir olmalıdır

Gereksinimler :

  • Python

Yorumlar xport

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!