Topic: Routine python che ritorna un risultato (esterno)  (Letto 1373 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Routine python che ritorna un risultato (esterno)
« Risposta #30 il: Gennaio 29, 2016, 13:59 »
usando   $ret = `script.py`;  non viene lanciato il file python e non funziona.... in $ret trovo  script.py
invece usando   {my $pippo = system 'python mio_file.py &';}  viene lanciato il file python e non funziona... in $pippo trovo -1

Scusa, proviamo a ragionare, che dici? Allora... intanto sai cosa fa quella & alla fine del comando?
Sai come si comporta Perl in presenza di tale costrutto? Quali sono le differenze di comportamento fra system e `` quando c'e' o meno?

E, detto fra noi... il fatto che system ti torni -1, vuole dire *qualcosa*. Ti e' chiaro cosa voglia dire?

Offline darfus

  • python unicellularis
  • *
  • Post: 16
  • Punti reputazione: 0
    • Mostra profilo
Re: Routine python che ritorna un risultato (esterno)
« Risposta #31 il: Gennaio 29, 2016, 14:12 »
http://www.perlhowto.com/executing_external_commands

Li spiegano le differenze sull'argomento...

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.020
  • Punti reputazione: 9
    • Mostra profilo
Re: Routine python che ritorna un risultato (esterno)
« Risposta #32 il: Gennaio 29, 2016, 16:12 »
sai cosa fa quella & alla fine del comando?
Sai come si comporta Perl in presenza di tale costrutto? Quali sono le differenze di comportamento fra system e `` quando c'e' o meno?

E, detto fra noi... il fatto che system ti torni -1, vuole dire *qualcosa*. Ti e' chiaro cosa voglia dire?

Ecco, qui proprio mi fermo anche io. Nel senso... così a intuito mi sembra ovvio che se metti il job in background, allora system possa restituire -1 (e infatti, l'avevo già accennato in uno dei trentamila post di questo thread). Ma se forki con il backtick, che cosa c*** potrebbe mai succedere? Così a intuito, secondo me esplode il computer. Se fossi l'interprete Perl, io pianterei subito un'eccezione e me ne andrei in vacanza.

Ma la cosa che proprio non ho capito è che l'op sostiene (pare... se ho capito che cosa vuol dire... mah) che, usando i backtick e non forkando (vedi ultima versione del codice), comunque il processo perl (ripeto, il processo perl non il subprocess python chiamato dai backtick) esce con -1. Questo mi sembra così assurdo che sono convinto di aver capito male io, o che l'op si sia confuso... ma del resto perl è abbastanza strano che potrebbe uscirsene con qualsiasi cosa...
« Ultima modifica: Gennaio 29, 2016, 16:19 da RicPol »