我想通过watchdog观察文件系统的变化,并通过telethon另外发送一条消息,代码如下:
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
from telethon import TelegramClient, sync, events
api_id = 0000000
api_hash = '*'
client = TelegramClient('Name', api_id, api_hash)
client.start()
class OnMyWatch:
# Set the directory on watch
watchDirectory = "/Users/UserID/Desktop/"
def __init__(self):
self.observer = Observer()
def run(self):
event_handler = Handler()
self.observer.schedule(event_handler, self.watchDirectory, recursive=True)
self.observer.start()
try:
while True:
time.sleep(5)
except:
self.observer.stop()
print("Observer Stopped")
self.observer.join()
class Handler(FileSystemEventHandler):
@staticmethod
def on_any_event(event):
if event.event_type == 'created':
# Sending a message to myself
client.send_message('me', 'A file was created!'),
if __name__ == '__main__':
watch = OnMyWatch()
watch.run()
不幸的是,它抛出以下错误:
file“/library/frameworks/python.framework/versions/3.9/lib/python3.9/site packages/telethon/sync.py”,第35行,syncified loop=asyncio.get\u event\u loop()
file“/library/frameworks/python.framework/versions/3.9/lib/python3.9/asyncio/events.py”,第642行,在get\u event\u loop raise runtimeerror('线程%r中没有当前事件循环'
runtimeerror:线程“thread-2”中没有当前事件循环*
我试图理解如何使用asyncio和telethon,但无法修复它,所以我想在这里得到一些有价值的提示。
暂无答案!
目前还没有任何答案,快来回答吧!