如何用perl解析文本文件(parse text files with perl)

解析文本文件是Perl成为优秀的数据挖掘和脚本工具的原因之一。...

解析文本文件是Perl成为优秀的数据挖掘和脚本工具的原因之一。

Businessman using computer in office

正如您将在下面看到的,Perl基本上可以用来重新格式化一组文本。如果向下看第一个文本块,然后在页面底部的最后一个部分,可以看到中间的代码是将第一个集合转换为第二个的代码。

如何解析文本文件

作为一个例子,让我们构建一个小程序,打开一个选项卡分隔的数据文件,并将列解析为我们可以使用的内容。

比如说,你的老板递给你一个包含姓名、电子邮件和电话号码列表的文件,希望你阅读该文件并对信息进行处理,比如将其放入数据库或只是将其打印在格式良好的报告中。

文件的列用制表符分隔,如下所示:

Larry [email protected] 111-1111 Curly [email protected] 222-2222 Moe [email protected] 333-3333

以下是我们将处理的完整列表:

#!/usr/bin/perl open (FILE, 'data.txt'); while (<FILE>) { chomp; ($name, $email, $phone) = split("\t"); print "Name: $name\n"; print "Email: $email\n"; print "Phone: $phone\n"; print "---------\n"; } close (FILE); exit;

注意:这从关于如何用Perl读写文件的教程中提取了一些代码。

它首先要做的是打开一个名为data.txt的文件(该文件应与Perl脚本位于同一目录中)。然后,它逐行将文件读入catchall变量$uu。在这种情况下,$是隐含的,而不是在代码中实际使用。

在读了一行之后,任何空格都会从末尾被剔除。然后,使用split函数断开制表符上的行。在这种情况下,选项卡由代码\t表示。在分割符号的左边,你会看到我分配了一组三个不同的变量。表示每列中的一行。

最后,从文件行拆分的每个变量都将单独打印,以便您可以查看如何单独访问每个列的数据。

脚本的输出应如下所示:

Name: Larry Email: [email protected] Phone: 111-1111 --------- Name: Curly Email: [email protected] Phone: 222-2222 --------- Name: Moe Email: [email protected] Phone: 333-3333 ---------

虽然在本例中,我们只是打印数据,但将从TSV或CSV文件解析的相同信息存储在一个成熟的数据库中却非常容易。

  • 发表于 2021-10-10 10:14
  • 阅读 ( 176 )
  • 分类:编程

你可能感兴趣的文章

perl公司(perl)和python(python)的区别

...计的。Perl代表实用的提取和报告语言。它是开源的,对文本操作很有用。Perl运行在Windows、Mac、Linux等多种平台上,是一种多范式语言,主要支持过程式编程和面向对象编程。过程编程有助于将程序划分为函数。面向对象编程有...

  • 发布于 2020-10-19 17:38
  • 阅读 ( 215 )

如何用代码读写xml文件

您想学习如何从java读写XML文件吗? ...

  • 发布于 2021-03-12 02:25
  • 阅读 ( 400 )

我可以在没有可见命令提示符的情况下运行windows批处理文件吗?

...的问答网站分组。 问题 超级用户读者Jake想隐形运行BAT文件,他写道: I have installed a ruby gem called Redcar, which is launched from the command line. When it runs, it steals the shell until it terminates, so I have to create a new shell window to continue doing command ...

  • 发布于 2021-04-12 03:23
  • 阅读 ( 199 )

如何在WindowsServer2008的IIS7上安装perl

...您的Perl设置。在名为“C:Inetpubwwwroot”的目录中创建两个文本文件测试.pl'和'测试.cgi'都包含以下内容: #!c:perlbinperl.exe use strict; use CGI; my $test = new CGI; print $test-&gt;header(“text/html”),$test-&gt;start_html(“Perl Test”); print $test-&gt;h1(“Pe...

  • 发布于 2021-04-13 11:16
  • 阅读 ( 154 )

如何在iis 6 for windows server 2003上安装perl

...您的Perl设置。在名为“C:Inetpubwwwroot”的目录中创建两个文本文件测试.pl'和'测试.cgi'都包含以下内容: #!c:perlbinperl.exe use strict; use CGI; my $test = new CGI; print $test-&gt;header(“text/html”),$test-&gt;start_html(“Perl Test”); print $test-&gt;h1(“Pe...

  • 发布于 2021-04-13 11:23
  • 阅读 ( 182 )

int解析(int parse)和在c中转换为32#(convert toint32 in c#)的区别

...什么不同–主要差异比较 关键术语 C#,转换为int 32,int解析 什么是int解析(int parse)? 使用int-Parse的主要目的是将字符串转换为整数。 Figure 1: Program 1 with int Parse 根据上面的程序,str存储一个字符串。int.Parse将其转换为整数。然...

  • 发布于 2021-07-01 04:44
  • 阅读 ( 196 )

perl语言(perl)和红宝石(ruby)的区别

...rl的web框架,而RubyonRails是一个主要的基于Ruby的web框架。 文件扩展名 文件扩展名是Perl和Ruby的另一个区别。Perl程序具有.pl文件扩展名,而Ruby程序具有.rb文件扩展名。 许可证 Perl的许可证是Artistic license 1.0或GNU General Public license。...

  • 发布于 2021-07-01 12:05
  • 阅读 ( 368 )

如何用一个命令快速查找和替换多个文件中的文本

如果您需要查找并替换出现在多个文档中的单词、短语、URL或其他内容,那么这将是一项非常繁琐的任务。如果您运行的是macosx、Linux或任何基于Unix的操作系统,那么可以使用命令行来节省大量时间和精力。您真正需要的只是这...

  • 发布于 2021-07-24 10:49
  • 阅读 ( 110 )

txtgtd是一个基于文本的系统,用于完成任务

...ubergeeky系统编写了一个简单的文本文件格式和一个将项目解析为不同上下文的脚本。他的系统的工作原理是将所有可操作项输入projects.txt文件,并遵循特定的格式来指示某个项是下一个操作、该项的上下文还是将这些项标记为完...

  • 发布于 2021-07-28 15:52
  • 阅读 ( 106 )

极客生活:保持你的日历在纯文本与提醒

吉娜·特拉帕尼纯文本是最可移植的、可浏览的、可搜索的、可靠的、与软件无关的文件格式。我们已经介绍了如何在todo.txt文件中跟踪任务和项目;今天,我们将使用一个名为“提醒”的老式UNIX程序扩展纯文本个人信息管理器...

  • 发布于 2021-08-02 04:50
  • 阅读 ( 199 )
ZxXZ7161
ZxXZ7161

0 篇文章

相关推荐