Ich habe dieses Skript geschrieben, um eine SMS an mich selbst zu senden, wenn die Datei results.txt geändert wird. Es sendet den Inhalt der Datei in einem Text an mein Telefon (ich habe die Zahlen in der Frage geändert). Es funktioniert, abgesehen davon, dass ich pro Modifikation zwei identische SMS-Nachrichten erhalte und ich nicht für das Leben von mir herausfinden kann warum.Python Twilio/Watchguard Skript Senden von 2 Nachrichten anstelle der 1 erwartet
import time
import sys, os
from twilio.rest import Client
from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler
class MyHandler(PatternMatchingEventHandler):
patterns = ["./results.txt"]
def process(self, event):
with open('results.txt', 'r') as myfile:
newtweet=myfile.read().replace('\n', '')
client = Client("ACac14lkjdchlkdhfdhb448d175335fbd8", "hduhdhdhddhidh39837382783232")
client.messages.create(from_="+44145698039",
to="+44778974188",
body=newtweet)
def on_modified(self, event):
self.process(event)
if __name__ == '__main__':
args = sys.argv[1:]
observer = Observer()
observer.schedule(MyHandler(), path=args[0] if args else '.')
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
EDIT **
hier ist die Datei, die auf results.txt schreibt:
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
text = status.text
name = status.user.screen_name
uid = status.user.id
print (text)
print (uid, text, name, file=open("results.txt", "w"))
def on_error(self, status_code):
if status_code == 420:
return False
myStreamListener = MyStreamListener()
users = ['22776208', '2845678578']
stream = tweepy.Stream(auth = api.auth, listener=myStreamListener, include_entities=True)
stream.filter(follow=users, languages=["en"])
keywords = ["Trump"]
stream.filter(track=keywords, languages=["en"])
Was ändert 'results.txt'? Es ist möglich, dass die Datei zweimal geändert oder mindestens zwei geänderte Ereignisse generiert werden. Ich würde wahrscheinlich versuchen, die Ereignisse, die Sie erhalten, zu protokollieren, um zu sehen, was vor sich geht. – philnash
Hallo, ich habe jetzt die Datei hinzugefügt, die in results.txt schreibt – neilH