Partage
  • Partager sur Facebook
  • Partager sur Twitter

Lancer un script Python à une heure précise

29 novembre 2015 à 4:50:41

Bonjour,

j'ai fait un programme sous python me permettant d'envoyer un mail automatiquement, mais lorsque je passe par le planificateur de tache windows (car j'aimerais le faire tout les jours à 20h) mon programme ne m'envoie pas d'email (Alors que si je double-clique sur mon fichier ça fonctionne).

Donc j'aimerais savoir s'il y avait un autre moyen ou si j'ai mal réglé mon planificateur ?

Merci d'avance !

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from random import *

   #Lecture du fichier comportant tout les sujets
lecture = open("dessins.txt", "r")
   #Importation du texte dans "Fichier"
fichier = lecture.read()
lecture.close()
   #Coupure de ce texte dans une liste
liste = fichier.split("_")
   #Choix du sujet et suppression dans la liste
sujet = choice(liste)
liste.remove(sujet)
   #On met dans "lecture" notre nouvelle liste avec un element supprime
newtext = "_".join(liste)
lecture = open("dessins.txt", "w")
lecture.write(newtext)
lecture.close()

   # Le code ci dessous envoie un email
fromaddr = "TestMail@gmail.com"
toaddr = "MonEmail@gmail.com"
msg = MIMEMultipart()
msg['From'] = "One drawing a day"
msg['To'] = toaddr
msg['Subject'] = sujet 
body = "Voici le sujet de ton dessin du jour !"
msg.attach(MIMEText(body, "plain")) 
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr, "motdepasse")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()



Le fichier "dessins.txt" est sous cette forme : voiture_une chaise_exemple_blabla

J'ai mit fichier.split("_") pour garder des espaces mais les séparés à chaque tiret lors de la création de la liste qui me permet de prendre un élément au hasard, puis de le supprimer de cette liste.

-
Edité par Spenc 29 novembre 2015 à 5:04:45

  • Partager sur Facebook
  • Partager sur Twitter
29 novembre 2015 à 9:21:16

Salut

tu devrais faire un log de ton programme, regarde le module logging de Python. Ainsi tu pourras comprendre ce qu'il se passe mais aussi surveiller ton programme.

  • Partager sur Facebook
  • Partager sur Twitter
30 novembre 2015 à 19:02:27

Bah mon programme fonctionne en lui même, juste ça ne marche pas à une heure précise.
  • Partager sur Facebook
  • Partager sur Twitter
15 février 2022 à 14:01:10

Si tu execute ce programme avec ton planificateur de tache tel quel, il va soit juste lancer python soit juste lire le fichier sans l'executer.

Pour palier à ca tu dois commencer ton programme par

#!/usr/bin/env python3

Puis le rendre executable.

  • Partager sur Facebook
  • Partager sur Twitter
15 février 2022 à 14:15:25

Depuis 2015, soit il a trouvé soit il a abandonné :lol: (et comme on ne sait pas comment il a configuré sa tache du planificateur ....)
  • Partager sur Facebook
  • Partager sur Twitter
16 février 2022 à 15:02:11

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter

Pas d'aide concernant le code par MP, le forum est là pour ça :)