J'apprends Python comme deuxième langage de programmation (mon premier vrai si vous ne comptez pas HTML/CSS/Javascript). J'essaye de construire quelque chose d'utile comme ma première vraie application - un robot IRC qui alerte les gens par SMS quand certaines choses arrivent dans le canal. À la demande de quelqu'un, j'essaie de créer des préférences de planification où les gens peuvent choisir de ne pas recevoir d'alertes entre les heures X et Y du jour.Aide avec l'étrangeté de la boucle Python?
Quoi qu'il en soit, voici le code que je vais avoir du mal avec:
db = open("db.csv")
for line in db:
row = line.split(",") # storing stuff in a CSV, reading out of it
recipient = row[0] # who the SMS is going to
s = row[1] # gets the first hour of the "no alert" time range
f = row[2] # gets last hour of above
nrt = [] # empty array that will store hours
curtime = time.strftime("%H") # current hour
if s == "no":
print "They always want alerts, sending email" # start time will = "no" if they always want alerts
# send mail code goes here
else:
for hour in range(int(s), int(f)): #takes start, end hours, loops through to get hours in between, stores them in the above list
nrt.append(hour)
if curtime in nrt: # best way I could find of doing this, probably a better way, like I said I'm new
print "They don't want an alert during the current hour, not sending" # <== what it says
else:
# they do want an alert during the current hour, send an email
# send mail code here
Le seul problème que je vais avoir est en quelque sorte le script se termine seulement en boucle à travers l'une des lignes (ou quelque chose comme ça) parce que Je n'obtiens qu'un seul résultat à chaque fois, même si j'ai plus d'une entrée dans le fichier CSV.
En général, je n '; t écrire un bot IRC à partir de zéro, et je voudrais essayer d'empêcher les autres de le faire aussi. Ecrire un plugin pour supybot, ou gozerbot. –
Ce n'est pas du tout un robot IRC, tout ce qu'il fait est d'utiliser des sockets, de rejoindre une salle et de déclencher la fonction "envoyer un message" quand il voit x se produire. En d'autres termes, je n'ai pas besoin de toutes les fonctionnalités de Supybot. –
Etes-vous sûr que le programme n'échoue pas ou ne lance pas d'exception? – theycallmemorty