将Python字符串写入文件以供Perl脚本

时间:2016-04-09 21:25:02

标签: python string perl

我想将结果写入Python中的txt文件,其中每行必须采用句子 - 标签分数的格式:

<s> This is the sentence </s> 42

目的是获得一个&#34; score_results&#34; Perl脚本读取句子和分数,其中每行解析w / @fields = split(/\t/)

$count = 0;
$best = "";
$bestlp = -1000000;

while (<>) {
        s/\s+[\r\n]+$//o;
        @fields = split(/\t/);
        if ($fields[1] > $bestlp) {
                $bestlp = $fields[1];
                $best = $fields[0];
        }

        if ((++$count % 5) == 0) {
                print "$best\n";
                $bestlp = -1000000;
        }
}

我的问题是用Python编写结果语句,

with open("results.txt", "wb") as fout:
    for sentence, score in zip(resultsSentences, resultsScores):
        fout.write(sentence + "\t" + str(score) + "\n")

不起作用,因为Python编写的文件中的选项卡最终成为新行,因此无法在Perl脚本中将其识别为选项卡。 &#34; results.txt&#34;的前几行。看起来像

<s> I have seen it on him , and could write to it </s> 
    42.0
<s> I have seen it on him , and could migrate to it </s> 
    42.0
<s> I have seen it on him , and could climb to it </s> 
    42.0

但是使用Perl脚本运行的示例结果看起来像

<s> I have seen it on him , and could write to it </s>  -46.8152390767177
<s> I have seen it on him , and could migrate to it </s>    -50.5058224637686
<s> I have seen it on him , and could climb to it </s>  -48.5949070950928

然后&#34; score_results&#34; Perl脚本使用bash调用运行 cat results.txt | ./score_results.pl > scores.temp

鉴于我更喜欢​​使用提供的Perl脚本,如何修改脚本和/或以不同方式编写结果语句?

0 个答案:

没有答案