gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:18:17 24 4
gpt4 key购买 nike

我有这样的数据:

Re: Building A

Month
kWh
1
100
2
110
3
105


Re: Building B

Month
kWh
1
200
2
210
3
205

我想将它转换为多个文本文件,每个文件对应一个建筑物。我的计划是:

  1. 提取建筑物分隔线之间的值
  2. 将行转换成表格

对于任务 (1),我尝试像这样使用触发器运算符:

while( <DATA> ) {
next unless /^Re: Building A/ .. /^Re: Building B/;
my $line = $_;
print $line;
}

但它不起作用,因为上面将仅显示建筑物 A 的数据。数据是针对多个建筑物(大约 50 个),因此我需要以递归方式执行此操作。我还没有开始做任务(2)。

我们将不胜感激。

最佳答案

我会做这样的事情:

#!/usr/bin/perl
use strict;
use warnings;

my %buildings;

while (<DATA>) {
chomp;
$buildings{$1} = [] if /^Re: Building ([AB])/;
push @{$buildings{$1}}, $_ if $_;
}

while (my ($building, $data) = each %buildings) {
open(my $out, '>', "$building.txt") or die "Unable to open file for writing: $!\n";

for my $i (1 .. $#$data / 2) {
print $out sprintf "%s\t%s\n", $data->[$i*2-1], $data->[$i*2];
}
close $out;
}

A.txt:

Month   kWh
1 100
2 110
3 105

B.txt:

Month   kWh
1 200
2 210
3 205

关于python - 将行转换为 perl 或 python 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10291489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com