Η ανάλυση αρχείων κειμένου είναι ένας από τους λόγους για τους οποίους η Perl κάνει ένα εξαιρετικό εργαλείο εξόρυξης δεδομένων και δέσμης ενεργειών.
Όπως θα δείτε παρακάτω, το Perl μπορεί να χρησιμοποιηθεί για την ουσιαστική αναδιαμόρφωση μιας ομάδας κειμένου. Εάν κοιτάξετε προς τα κάτω το πρώτο κομμάτι κειμένου και στη συνέχεια το τελευταίο τμήμα στο κάτω μέρος της σελίδας, μπορείτε να δείτε ότι ο κώδικας στη μέση είναι αυτό που μετατρέπει το πρώτο σετ στη δεύτερη.
Πώς να κάνετε ανάλυση αρχείων κειμένου
Για παράδειγμα, ας δημιουργήσουμε ένα μικρό πρόγραμμα που ανοίγει ένα αρχείο δεδομένων χωρισμένο σε καρτέλες και αναλύει τις στήλες σε κάτι που μπορούμε να χρησιμοποιήσουμε.
Πείτε, για παράδειγμα, ότι το αφεντικό σας σας δίνει ένα αρχείο με μια λίστα με ονόματα, ηλεκτρονικά μηνύματα και αριθμούς τηλεφώνου και σας θέλει να διαβάσετε το αρχείο και να κάνετε κάτι με τις πληροφορίες, όπως το βάλετε σε μια βάση δεδομένων ή απλά να το εκτυπώσετε σε ένα όμορφα διαμορφωμένο κανω ΑΝΑΦΟΡΑ.
Οι στήλες του αρχείου διαχωρίζονται με τον χαρακτήρα TAB και θα έχουν την εξής μορφή:
Larry larry@example.com 111-1111
Curly@example.com 222-2222
Moe moe@example.com 333-3333
Εδώ είναι η πλήρης λίστα με την οποία θα συνεργαστούμε:
#! / usr / bin / perl
ανοικτή (ΑΡΧΕΙΟ, 'data.txt');
ενώ () {
chomp;
($ όνομα, $ email, $ phone) = διαίρεση ("\ t");
εκτύπωση "Όνομα: $ όνομα \ n";
εκτύπωση "Email: $ email \ n";
εκτύπωση "Τηλέφωνο: $ τηλέφωνο \ n";
εκτύπωση "\ n";
}
κλείσιμο (ΑΡΧΕΙΟ);
έξοδος;
Σημείωση: Αυτό τραβάει κάποιο κώδικα από το σεμινάριο πώς να διαβάζετε και να γράφετε αρχεία στο Perl.
Αυτό που κάνει πρώτα είναι ανοιχτό a αρχείο που ονομάζεται data.txt (που θα πρέπει να βρίσκεται στον ίδιο κατάλογο με το σενάριο Perl). Στη συνέχεια, διαβάζει το αρχείο στη μεταβλητή catchall $ _ γραμμή κατά γραμμή. Σε αυτή την περίπτωση, το $ _ είναι σιωπηρή και δεν χρησιμοποιούνται πραγματικά στον κώδικα.
Μετά την ανάγνωση σε μια γραμμή, κάθε κενό είναι τσιπούρα από το τέλος του. Στη συνέχεια, η λειτουργία διαίρεσης χρησιμοποιείται για να σπάσει τη γραμμή στον χαρακτήρα της καρτέλας. Σε αυτήν την περίπτωση, η καρτέλα αντιπροσωπεύεται από τον κώδικα \ t. Στα αριστερά του σημείου του διαχωρισμού, θα δείτε ότι αναθέτω μια ομάδα τριών διαφορετικών μεταβλητών. Αυτά αντιπροσωπεύουν ένα για κάθε στήλη της γραμμής.
Τέλος, κάθε μεταβλητή που έχει διαχωριστεί από τη γραμμή του αρχείου τυπώνεται ξεχωριστά, έτσι ώστε να μπορείτε να δείτε πώς να αποκτήσετε πρόσβαση σε δεδομένα κάθε στήλης ξεχωριστά.
Η έξοδος του σεναρίου θα πρέπει να φαίνεται κάπως έτσι:
Όνομα: Λάρι
Email: larry@example.com
Τηλέφωνο: 111-1111
Όνομα: Σγουρό
Ηλεκτρονικό ταχυδρομείο: curly@example.com
Τηλέφωνο: 222-2222
Όνομα: Moe
Email: moe@example.com
Τηλέφωνο: 333-3333
Παρόλο που σε αυτό το παράδειγμα απλά εκτυπώνουμε τα δεδομένα, θα ήταν απλά εύκολο να αποθηκεύσετε τις ίδιες πληροφορίες που αναλύθηκαν από ένα αρχείο TSV ή CSV σε μια πλήρης βάση δεδομένων.