如何使用Perl解析文本文件

解析文本文件是Perl制作出色的數(shù)據(jù)挖掘和腳本編寫(xiě)工具的原因之一。

正如你所說(shuō),Perl可以用來(lái)基本上重新格式化一組文本。如果您查看第一塊文本,然后查看頁(yè)面底部的最后一部分,可以看到中間的代碼是將第一組轉(zhuǎn)換為第二組的內(nèi)容。

如何解析文本文件

例如,讓's構(gòu)建一個(gè)小程序,打開(kāi)一個(gè)制表符分隔的數(shù)據(jù)文件,并將這些列解析為我們可以使用的東西。

比如說(shuō),你的老板給你一個(gè)帶有姓名,電子郵件和電話號(hào)碼列表的文件,并希望你閱讀該文件并處理這些信息,比如把它放入數(shù)據(jù)庫(kù)或只是打印出來(lái)在一個(gè)格式良好的報(bào)告中。

文件's列用制表符字符分隔,看起來(lái)像這樣:

拉里larry@example.com111-1111

卷曲curly@example.com222-2222

Moemoe@example.com333-3333

這里's我們的完整列表'將使用:

#!/usr/bin/perl


打開(kāi)(文件,'data.txt';;;;

而(&&&

chomp;

($name,$電子郵件,$手機(jī));;;;;;;;;;;

打印&\\\#);;;;;;;;;;;;;;;;;;;



;;;;;;



($($name,$$$$電子郵件,$


##34;電話:$電話\ n";

打印"---------\n";

}

關(guān)閉(文件);

退出;

注意:這從關(guān)于如何科目三安全文明駕駛常識(shí)考試在Perl中讀取和寫(xiě)入文件的教程中提取了一些代碼。

它首先做的是打開(kāi)一個(gè)名為data.txt(應(yīng)該與Perl腳本位于同一目錄中)。然后,它逐行讀取文件到catchall變量$_u中。在這種情況下,$是隱含的并沒(méi)有在代碼中實(shí)際使用。

在一行閱讀之后,任何白人空間都被從它的末尾洗掉。然后,拆分功能用于打破制表符字符上的行。在這種情況下,選項(xiàng)卡由代碼\ t表示。在split's符號(hào)的左側(cè),您'將看到I'm分配一組三個(gè)不同的變量。這些代表了每一行的一個(gè)。

最后,分別打印從文件's行拆分的每個(gè)變量,以便您可以看到如何單獨(dú)訪問(wèn)每列's數(shù)據(jù)。

腳本的輸出應(yīng)該看起來(lái)像這樣:

姓名:Larry

電子郵件:larry@example.com

電話:111-1111

---------------

姓名:Curly

電子郵件:curly@example.com

電話:222-2222

---------------

姓名:Moe

電子郵件:moe@example.com

電話:333-3333

-----

雖然在這個(gè)例子中我們'只需打印數(shù)據(jù),但在一個(gè)完整的數(shù)據(jù)庫(kù)中存儲(chǔ)從TSV或CSV文件解析的相同信息是非常容易的。

科普_1