将列表从perl传递到Python并检查返回值
我已经用perl编写了下面的脚本,并试图传递python 输入:D1和D2是数组,plotanalysis是python脚本将列表从perl传递到Python并检查返回值,python,perl,Python,Perl,我已经用perl编写了下面的脚本,并试图传递python 输入:D1和D2是数组,plotanalysis是python脚本 my @D1=([],[]); my @D2=([],[]); my $cmd="plotanalysis -d1 @D1 -d2 @D2"; print STDERR "***Info : plotanalysis command $cmd\n"; if(system($cmd)!=0) { print STDERR &quo
my @D1=([],[]);
my @D2=([],[]);
my $cmd="plotanalysis -d1 @D1 -d2 @D2";
print STDERR "***Info : plotanalysis command $cmd\n";
if(system($cmd)!=0)
{
print STDERR "plotanalysis did not run";
}
期望:我期望数组将传递给python脚本,但得到以下信息
得到下面的线
plotanalysis command plotanalysis -d1 ARRAY(0x873b58) ARRAY(0x873b88) -d2 ARRAY(0xa3ffa0) ARRAY(0xa3ffd0)
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `plotanalysis -d1 ARRAY(0x873b58) ARRAY(0x873b88) -d2 ARRAY(0xa3ffa0) ARRAY(0xa3ffd0)'
解决问题的任何意见/建议。我还需要从python脚本捕获返回值。我能知道你怎么处理吗
在python脚本中,我使用make作为字符串
def parse_args(args):
"""Parse the argument"""
parser = argparse.ArgumentParser(description='check function',
epilog="""
for reporting any issue""")
parser.add_argument('-d1', '-data1', dest='data_1', required=True,
nargs = "*",
help = "x and y data for calculation")
parser.add_argument('-d2', '-data2', dest='data_2', required=True,
nargs = "*",
help = "x and y data for calculation")
args = parser.parse_args(args)
return args
def main(args):
"""Invoke main functionality"""
print (args)
if __name__ == "__main__":
sys.exit(main(parse_args(sys.argv[1:])))
我做了以下更新,帮助我获得所需的价值
my $cmd="plotanalysis -d1 '@{$D1[1]}' -d2 '@{$D2[1]}'";
print STDERR "***Info : plotanalysis command $cmd\n";
if(system($cmd)!=0)
{
print STDERR "plotanalysis did not run";
}