这是一个愚蠢的问题。我是Perl的新手,并尝试使用HTML:TableExtract在线提取一些数据。我从网页上获得了数字,但不知道如何在txt文件中打印出来。我试图打开一个文件,但没有成功。这是我使用的代码。感谢。
#!/usr/bin/perl
use Encode qw(decode);
use Encode;
use Encode::HanExtra;
use Encode::HanConvert;
use strict;
use warnings;
chdir("C:/perlfiles/test") || die "cannot cd ($!)";
my $file = "tokyo.html";
use HTML::TableExtract;
open my $outfile, '>', "tokyo.txt" or die 'Unable to create file';
my $label = 'by headers';
my $te = HTML::TableExtract->new(headers => [qw(number city)]);
$te->parse_file($file);
foreach my $ts ($te->tables) {
print "Table (", join(',', $ts->coords), "):\n";
foreach my $row ($ts->rows) {
print $outfile join(",", @$row),"\n";
}
}
close $outfile;
有什么问题?感谢。
答案 0 :(得分:0)
使用>>
代替>
。 >
每次都会覆盖最后一个文件,因此如果循环迭代的结束没有返回任何值,那么最终会得到一个空白文件。 >>
附加到现有文件的EOF
,从而保留以前写入的数据。
open (OUT,'>>tokyo.txt') or die 'Unable to create file';
这样的事情可能有用。
open (OUT,'>>tokyo.txt') or die 'Unable to create file';
....
....
foreach my $row ($ts->rows) {
print OUT join(",", @$row) . "\n";
}
....
close OUT;
此外,您的文件句柄不太正确my $outfile
。文件句柄应该是"标签"使用文件句柄连接到外部文件。在您的情况下,$outfile
是一个变量,不包含任何值!因此没有标签,因此文件不会打开。您必须使用类似OUT
(如我所做)或OUTFILE
之类的内容突出显示perl与外部文件的连接,并使用此文件句柄通过代码编写,读取关闭文件等