interruption script automator

autodidacte

Nouveau membre
24 Avril 2021
9
0
bonjour à tous ,
je m'initie actuellement à Automator pour automatiser le lancement d'un script Python dont la sortie est envoyer vers Mail ;
le problème que je rencontre est une interruption de processus causée par une ligne "input" dans le script .
Quelqu'un sait-il quelque chose à ce sujet ?
 

Garkam

Membre confirmé
22 Avril 2020
243
86
42
Bonjour,
Ce qui est normal puisque la commande input de python attend une saisie clavier via le terminal.
Il faudrait voir le script Python pour l'adapter à Automator (je pense notamment à sys.argv)
 

Garkam

Membre confirmé
22 Avril 2020
243
86
42
Oui ou tout simplement l'exécuter dans un shell (ici pour python 3.9)


EDIT: Au temps pour moi ça ne fonctionne pas
 

Fichiers joints

  • Sans titre.jpeg
    Sans titre.jpeg
    62,4 KB · Affichages: 33
Dernière édition:

autodidacte

Nouveau membre
24 Avril 2021
9
0
non cela ne fonctionne pas parce que le script fait appel à une fonction "input()" ;
du coup cela stoppe automator qui reçoit un EOF ??
 

Garkam

Membre confirmé
22 Avril 2020
243
86
42
Non, toujours dans Automator -> Exécuter un script AppleScript

AppleScript:
on run {input, parameters}
    tell application "Terminal"
        activate
        do script "python3 /Users/GARKAM/Desktop/palette/Mans.py"
    end tell
    return input
end run
 

autodidacte

Nouveau membre
24 Avril 2021
9
0
j'ai essayé ; cette fois l'application Mail n'attend pas la fin du script python ,du coup ,le mail est vide ?!
Mais il y a un progrès : ça ne plante plus ....
 

autodidacte

Nouveau membre
24 Avril 2021
9
0
Je vais tâcher d'être plus clair pour décrire ce que je souhaite faire :
1) Ouvrir un terminal
2) Lancer un script avec des paramètres
( à l'intérieur du script ....)
2a) Entrer du texte
2b) Coder le texte
( sortie du script )
3) Ouvrir Mail en fournissant le texte codé
4) Envoyer le mail
5) Revenir en 2)
 

Garkam

Membre confirmé
22 Avril 2020
243
86
42
J'ai trouvé ça en farfouillant sur le net, au moins pour le 1 et 2, le script attend la fin d'exécution de python, après pour récupérer le texte il faut faire des recherches
AppleScript:
tell application "Terminal"
    activate
    do script "python3 /Users/GARKAM/Desktop/palette/Mans.py" in window 1
end tell

set isBusy to true
repeat until isBusy is false
    tell application "Terminal"
        tell window 1
            set isBusy to busy as boolean --> Test if busy
        end tell
    end tell
    delay 1 --> Check every second
end repeat

tell me to activate

display dialog "Terminal is No Longer Busy!"
quit application "Terminal"

A copier/coller dans -> Exécuter un script AppleScript
 

autodidacte

Nouveau membre
24 Avril 2021
9
0
non cela ne fonctionne pas parce que le script fait appel à une fonction "input()" ;
du coup cela stoppe automator qui reçoit un EOF ??
Finalement j’ai solution :
1) boîte de dialogue
2) script shell qui lance l’application
3) ouverture de Mail
4) envoi du mail
Reste à trouver comment boucler en 1)
 

Garkam

Membre confirmé
22 Avril 2020
243
86
42
Utilise boucle que tu places à la fin de ton script en indiquant le nombre de fois que tu désires l'exécuter