interruption script automator

autodidacte

Membre enregistré
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 ?
 
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)
 
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: 151
Dernière édition:
non cela ne fonctionne pas parce que le script fait appel à une fonction "input()" ;
du coup cela stoppe automator qui reçoit un EOF ??
 
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
 
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 ....
 
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)
 
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
 
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)
 
Utilise boucle que tu places à la fin de ton script en indiquant le nombre de fois que tu désires l'exécuter