perl转python_将行转换为perl或python中的列

我认为你可以用一张桌子做好,所以我会告诉你如何做你要求的和我认为好的。

$name = "";

$data = {};

open(IN, "build.txt");

foreach my $line (){

if($line =~ /Re: (.*)\n/) { # get building name

$name = $1;

$name =~ s/ /_/;

$data->{$name} = []; # link to empty array

} else {

# make a new list and return to a list

@{$data->{$name}} = (@{$data->{$name}}, $line); # add line to current building data

}

}

close IN;

#

# write on file for each

#

foreach my $name (keys %{$data}){

open(OUT, ">$name.txt");

foreach my $line (@{$data->{$name}}){

print OUT $line;

}

close OUT;

}

#

# or write into one file as a table

#

open(OUT, ">tabledata.txt");

foreach my $name (keys %{$data}){

# because the data was not filtered on import we filter it now

my $flag = 0;

my @data;

foreach my $line (@{$data->{$name}}){

if($line =~ /kWh/) {

$flag = 1;

} elsif($line =~ /^\n$/){ # skip blanks

} elsif($flag == 1) { # skip the counters

$flag++;

} elsif($flag > 1) {

chomp($line);

@data = (@data, $line);

$flag = 1;

}

}

# print pretty rows

my $format = "%20s" . ("%10d" x @data);

print OUT sprintf($format, $name, @data) . "\n";

}

close OUT;这使得每个建筑物的文件具有建筑物名称。 Building_A.txt的一个例子是:

Month

kWh

1

100

2

110

3

105表文件名为tabledata.txt,如下所示:

Building_A 100 110 105

Building_B 200 210 205

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值