xport

Screenshot Λογισμικό:
xport
Στοιχεία Λογισμικού:
Εκδοχή: 0.1.0
Ανεβάστε ημερομηνία: 14 Apr 15
Προγραμματιστής: Jack Cushman
Άδεια: Δωρεάν
Δημοτικότητα: 0

Rating: 4.0/5 (Total Votes: 1)

ξαγωγή είναι η δυαδική μορφή αρχείου που χρησιμοποιείται από μια δέσμη των Ηνωμένων Πολιτειών κυβερνητικές υπηρεσίες για τη δημοσίευση συνόλων δεδομένων & nbsp?. Έκανε μια πολύ νόημα αν προσπαθούσατε να διαβάσετε τα αρχεία δεδομένων σε IBM mainframe σας πίσω στο 1988.
Πώς μπορώ να χρησιμοποιήσω;
Ας κάνουμε αυτό το σύντομο και γλυκό:
ξαγωγή εισαγωγής
με xport.XportReader (xport_file) ως αναγνώστης:
& Nbsp? Για σειρά αναγνώστη:
& Nbsp? Σειρά εκτύπωσης
Κάθε σειρά θα είναι μια dict με ένα κλειδί για κάθε τομέα στο σύνολο δεδομένων. Οι τιμές θα είναι είτε μια σειρά Unicode, ένα πλωτήρα ή έναν int, ανάλογα με τον τύπο που καθορίζεται στο αρχείο για αυτό το πεδίο.
Να πάρει πληροφορίες του αρχείου
Μόλις έχετε ένα αντικείμενο XportReader, υπάρχουν μερικές ιδιότητες και τις μεθόδους που θα σας δώσει λεπτομέρειες σχετικά με το αρχείο:
- Reader.file: το υποκείμενο αντικείμενο αρχείο Python (βλέπε επόμενη ενότητα).
- Reader.record_start: η θέση (σε bytes) στο αρχείο όπου ξεκινούν τα αρχεία (βλέπε επόμενη ενότητα).
& Nbsp? Reader.record_length: το μήκος (σε bytes) του κάθε εγγραφή (βλέπε επόμενη ενότητα).
- Reader.record_count (): αριθμός των εγγραφών στο αρχείο. (Προσοχή: αυτό θα επιδιώξει στο τέλος του αρχείου για να καθορίσει το μήκος του αρχείου.)
- Reader.file_info και reader.member_info: DICTS περιέχει πληροφορίες σχετικά με το πότε και το πώς δημιουργήθηκε το σύνολο δεδομένων.
- Reader.fields: κατάλογος των τομέων στο σύνολο δεδομένων. Κάθε πεδίο είναι μια dict περιέχει τα ακόλουθα κλειδιά, που αντιγράφονται από το spec:
& Nbsp? Struct {NAMESTR
& Nbsp? Σύντομο ntype? / * Είδος της μεταβλητής: 1 = αριθμητικός, 2 = ΧΑΡ * /
& Nbsp? Σύντομο nhfun? / * Hash του NNAME (πάντα 0) * /
& Nbsp? * Σύντομο field_length? / * ΜΗΚΟΣ ΤΗΣ μεταβλητή στο ΠΑΡΑΤΗΡΗΣΗ * /
& Nbsp? Σύντομο nvar0? / * Varnum * /
& Nbsp? * Όνομα char8? / * ΤΟ ΟΝΟΜΑ ΤΗΣ ΜΕΤΑΒΛΗΤΗΣ * /
& Nbsp? * Ετικέτα char40? / * ΕΤΙΚΕΤΑ ΤΗΣ ΜΕΤΑΒΛΗΤΗΣ * /
& Nbsp? Char8 nform? / * ΤΟ ΟΝΟΜΑ ΤΟΥ ΤΥΠΟΥ * /
& Nbsp? Σύντομη NFL? / * Μορφής πεδίου μήκους ή 0 * /
& Nbsp? * Σύντομο num_decimals? / * Μορφή αριθμού των δεκαδικών * /
& Nbsp? Σύντομο nfj? / * 0 = ΑΡΙΣΤΕΡΑ δικαιολογία, 1 = δεξιά ακριβώς * /
& Nbsp? Char nfill [2]? / * (Αχρησιμοποίητη ευθυγράμμιση και μέλλον) * /
& Nbsp? Char8 niform? / * ΤΟ ΟΝΟΜΑ ΤΗΣ ΕΙΣΟΔΟΥ τη μορφή * /
& Nbsp? Σύντομο nifl? / * ΠΛΗΡΟΦΟΡ ΜΗΚΟΣ ΙΔΙΟΤΗΤΑ * /
& Nbsp? Σύντομο nifd? / * ΠΛΗΡΟΦΟΡ αριθμός δεκαδικών * /
& Nbsp? Μακρά ΟΜΚΧ? / * ΘΕΣΗ ΤΗΣ ΑΞΙΑΣ ΣΕ ΠΑΡΑΤΗΡΗΣΗ * /
& Nbsp? Υπόλοιπο char [52]? / * Υπόλοιπα πεδία είναι άσχετες * /
& Nbsp?}?
& nbsp? ΣΗΜΕΙΩΣΗ: έχουν τα στοιχεία με τα αστέρια έχουν μετονομαστεί από τις σύντομες ονόματα που δίνονται στο spec. Δεδομένου ότι αυτό είναι μια έκδοση alpha, άλλα στοιχεία μπορεί να μετονομαστεί στο μέλλον, αν κάποιος μου πει τι είναι για.
Τυχαία πρόσβαση στα αρχεία
Αν θέλετε να αποκτήσετε πρόσβαση σε συγκεκριμένες εγγραφές, αντί για την επανάληψη, μπορείτε να χρησιμοποιήσετε τυπικές λειτουργίες πρόσβαση αρχείου της 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 ()
(Σε αυτό το τελευταίο παράδειγμα, σημειώστε ότι δεν μπορούμε να αναζητήσουν από το τέλος του αρχείου, επειδή μπορεί να υπάρχουν bytes padding. Good old σταθερού πλάτους δυαδικό μορφές αρχείων.)
Διορθώστε / κλέψει τον κωδικό!
Έγραψα αυτό διότι φαινόταν γελοίο το γεγονός ότι δεν υπήρχε εύκολος τρόπος για να διαβάσει μια τυπική μορφή της κυβέρνησης των δεδομένων στις περισσότερες γλώσσες προγραμματισμού. Μπορεί να έχω πάρει τα πράγματα λάθος. Αν βρείτε ένα αρχείο που δεν αποκωδικοποιήσει Αποτελείτε, να στείλετε ένα αίτημα έλξης. Η επίσημη spec είναι εδώ. Είναι εκπληκτικά απλή για μια δυαδική μορφή αρχείου από τη δεκαετία του '80.
Παρακαλούμε επίσης να αισθάνονται ελεύθεροι να χρησιμοποιούν τον κώδικα αυτό ως βάση για να γράψετε τη δική σας βιβλιοθήκη για την αγαπημένη σας γλώσσα προγραμματισμού. . Κυβέρνηση δεδομένα πρέπει να είναι προσβάσιμα, ο άνθρωπος

Απαιτήσεις :

  • Python

Σχόλια για xport

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!