วิธีแยกวิเคราะห์ไฟล์ข้อความด้วย Perl

0
38


การแยกวิเคราะห์ไฟล์ข้อความเป็นหนึ่งในเหตุผลที่ Perl เป็นเครื่องมือสร้างสคริปต์และขุดข้อมูลที่ยอดเยี่ยม

ดังที่คุณจะเห็นด้านล่างนี้ โดยพื้นฐานแล้ว Perl สามารถใช้เพื่อจัดรูปแบบกลุ่มข้อความใหม่ได้ หากคุณดูที่ข้อความส่วนแรกและส่วนสุดท้ายที่ด้านล่างของหน้า คุณจะเห็นว่าโค้ดที่อยู่ตรงกลางคือสิ่งที่เปลี่ยนชุดแรกเป็นชุดที่สอง

วิธีแยกวิเคราะห์ไฟล์ข้อความ

ตัวอย่างเช่น ลองสร้างโปรแกรมขนาดเล็กที่เปิดไฟล์ข้อมูลที่คั่นด้วยแท็บและแยกวิเคราะห์คอลัมน์เป็นสิ่งที่เราสามารถใช้ได้

ตัวอย่างเช่น เจ้านายของคุณส่งไฟล์ที่มีรายชื่อ อีเมล และหมายเลขโทรศัพท์ให้คุณ และเขาต้องการให้คุณอ่านไฟล์และทำบางอย่างกับข้อมูล เช่น เก็บไว้ในฐานข้อมูลหรือพิมพ์ออกมา . ในรายงานที่มีรูปแบบสวยงาม

คอลัมน์ของไฟล์ถูกคั่นด้วยอักขระ TAB และจะมีลักษณะดังนี้:


แลร์รี[ป้องกันอีเมล] 111-1111

Curly [ป้องกันอีเมล] 222-2222

โม[ป้องกันอีเมล] 333-3333

นี่คือรายการทั้งหมดที่เราจะทำงานร่วมกับ:


#!/usr/bin/perl

 

เปิด (ไฟล์ 'data.txt');

ในขณะที่ (<FILE>) {

กัด;

($ชื่อ, $อีเมล, $โทรศัพท์) = แยก ("t");

พิมพ์ "ชื่อ: $namen";

พิมพ์ "อีเมล: $mail";

พิมพ์ "โทรศัพท์: $phonenon";

พิมพ์ "---------น";

}

ปิดไฟล์);

ทางออก;

 

หมายเหตุ:  วิธีนี้จะแยกโค้ดออกจากบทช่วยสอนเกี่ยวกับ การ อ่านและเขียนไฟล์ใน Perl

สิ่งแรกที่ต้องทำคือเปิดไฟล์ชื่อ data.txt (ซึ่งต้องอยู่ในไดเร็กทอรีเดียวกันกับสคริปต์ Perl) จากนั้นจะอ่านไฟล์ในตัวแปร catchall $_ ทีละบรรทัด ในกรณีนี้ $_ เป็นนัยและไม่ได้ใช้จริงในโค้ด

หลังจากอ่านบรรทัดแล้ว ช่องว่างต่อท้ายจะ ถูก ลบออก จากนั้นใช้ฟังก์ชันแยกเพื่อแบ่งบรรทัดที่อักขระแท็บ ในกรณี นี้แท็บจะแสดงด้วยรหัสt ทางด้านซ้ายของเครื่องหมายหาร คุณจะเห็นว่าฉันกำลังกำหนดกลุ่มของตัวแปรที่แตกต่างกันสามตัว สิ่งเหล่านี้แทนหนึ่งสำหรับแต่ละคอลัมน์ของบรรทัด

สุดท้าย ตัวแปรแต่ละตัวที่ถูกแยกออกจากบรรทัดไฟล์จะถูกพิมพ์แยกกัน เพื่อให้คุณสามารถดูวิธีการเข้าถึงข้อมูลในแต่ละคอลัมน์ทีละรายการ

ผลลัพธ์ของสคริปต์ควรเป็นดังนี้:


ชื่อ: แลร์รี่

อีเมล: [ป้องกันอีเมล]

โทรศัพท์: 111-1111

---------

ชื่อ: หยิก

อีเมล: [ป้องกันอีเมล]

โทรศัพท์: 222-2222

---------

ชื่อ:โม

อีเมล: [ป้องกันอีเมล]

โทรศัพท์: 333-3333

---------

แม้ว่าเราจะแค่พิมพ์ข้อมูลในตัวอย่างนี้ การจัดเก็บข้อมูลที่แยกวิเคราะห์เดียวกันจากไฟล์ TSV หรือ CSV ลงในฐานข้อมูลที่สมบูรณ์อาจเป็นเรื่องง่ายเล็กน้อย