[python] récupérer variable sur internet [résolu, solution inside]

Bonjours a tous,

Je souhaiterais créer un script python qui me permet de recup des variables d'un fichier .txt sur internet. Ceci dans le but d'allumer ou éteindre une LED en passant par la modification de la variable de ce fichier .txt a distance.
J'ai essayer ce script en récupérant des "bout" de code a droite et à gauche mais ça fonctionne pas ...

Le code ce lance, j'obtient:

Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.

================================ RESTART ================================

connecté
Le programme tourne
ouverture du port
port ouvert

Mais rien ne se passe, pas d'indication de " new mails","no new mails" ... ou même une led qui s'allume ....

import urllib
cmd = []
print "connecté"
print "Le programme tourne"
import serial

a = 0

def recup():

a1 = urllib.urlopen("http://modelismebychico.free.fr/g.txt") ## Récup des valables; 1 fichier par led

Cette variable permet de couper le script, sinon, tuer le script sur le PC laisse le port com9 oqp

if a1.readline != "":
a = a1.readline()
if a == "ERROR":
ser.write("-1")
print a
else:
if a > 0:
ser.write("m")
else:
ser.write("n")
print str(a) + ' new mail(s) !'

recup()
print "ouverture du port"
ser = serial.Serial()
ser.setPort("COM3")
ser.baudrate = 57600
ser.close()
ser.open()
print "port ouvert"
recup()
if (ser.isOpen()):
recup()

Sur mon arduino j'ai un programme qui me dit que si la variable est "m" alors jallume la LED verte, si c'est "n" la rouge et enfin "-1" la BLEU ! ce programme fonctionne bien, c'es juste la ârtie python qui coince ...

merci a vous

Bon j'ai rebosser un peu le truc et il se lance enfin mais le problème est qu'il me dit toujours "news mails" même quand j'ai "0" dans mon fichier texte en ligne :stuck_out_tongue_closed_eyes:

import feedparser
import serial
import time
import urllib

------------------------------------------------------------------------------

request = "http://modelismebychico.free.fr/g.txt"
SERIALPORT = "COM3"
delay = 2

------------------------------------------------------------------------------

def check_gmail (request):
try:
newmails = urllib.urlopen("http://modelismebychico.free.fr/g.txt")
except:
return 'ERROR'
else:
return newmails

------------------------------------------------------------------------------

try:
ser = serial.Serial("COM3", 9600)
except:
print 'No device connected !'
else:
while True:
reply = check_gmail(request)
if reply == 'ERROR':
ser.write(-1)
print reply
else:
if reply > 0:
ser.write("m")
else:
ser.write("n")
print str(reply) + ' new mail(s) !'
time.sleep(delay)

merci

personne ? :roll_eyes:

Voila la solution grave au forum anglais :smiley:

Voila le bon code que je vient de faire grâce a l'aide de nos amis Anglais !

import serial
import time
import urllib

# ------------------------------------------------------------------------------ #

request = "http://modelismebychico.free.fr/g.txt"
SERIALPORT = "COM3"
delay = 2

# ------------------------------------------------------------------------------ #

# CHECKMAIL
#
def check_gmail (request):
   try:
      f = urllib.urlopen(request)
      s = f.read()
      f.close()
   except:
      return 'ERROR'
   else:
      return s

# ------------------------------------------------------------------------------ #

try:
	ser = serial.Serial("COM3", 9600)
except:
	print 'No device connected !'
else:
	while True:
		reply = check_gmail(request)
		if reply == 'ERROR':
			ser.write(-1)
			print reply
		else:
			if reply == "m": 
			   ser.write("m")
			else: 
			   ser.write("n")
			print str(reply)
		time.sleep(delay)