我是perl和python的新手。
我需要在python(dataframe)中进行文件处理,并且该文件需要在Perl中计算。
起初,我试图使用python子进程,它不工作(破管)
我需要来自python的多行,而perl代码需要读取和处理。
我只是用|在命令行中,它是工作,但perl跳过赔率数字行,只读取偶数行。
我该怎么办呢?
我的python代码是:
import pandas as pd
data = pd.read_csv('./data.txt', sep = '\t', header = None)
datalist = list(data[0] + '_' + data[1])
for line in kinase_list:
print(line)
我的perl代码是://
use strict;
my %new_list = ();
while (<STDIN>){
my $line = <STDIN>;
# print STDERR $line;
# chomp $line;
my ($name, $title) = split('_', <STDIN>);
$new_list{$title} = $name;
print STDERR $name, "\t", $title, "\n";
}
print STDERR scalar(keys %new_list);
我的python输出657行,但perl刚出329。
我该怎么办呢?
表达式<STDIN>
从标准输入读取一行,因此您的Perl代码在while
循环的每次迭代中读取两行。
这就足够了
while (<STDIN>) {
my $line = $_;
...
要不就
while (my $line = <STDIN>) {
...