J'ai écrit le script suivant en perl et j'ai essayé de passer python.

Entrée : D1 et D2 sont des tableaux et plotanalysis est un script 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 "plotanalysis did not run";
}

Attendre : je m'attendais à ce que le tableau passe au script python mais j'obtiens les informations suivantes

Obtenir la ligne suivante

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)'

Toute entrée/suggestion pour résoudre le problème. J'ai également besoin de capturer la valeur de retour du script python. puis-je savoir comment peut être géré?

Dans le script python, j'ai make as string

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:])))
0
user765443 9 oct. 2020 à 14:23

1 réponse

Meilleure réponse

J'ai fait la mise à jour suivante qui m'aide à obtenir la valeur souhaitée

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";
}
0
user765443 9 oct. 2020 à 11:45