问题描述
我正在处理一个项目,其中程序使用机器人从 Telegram 聊天中获取所有文件,然后使用 Python 中的 Watchdog 库将文件移动到子文件夹中。例如,我运行脚本的主要脚本如下所示:
import file_organizer
import upload_to_s3
import subprocess
subprocess.call(['python.exe','telegram_get.py','file_trigger.py'])
我的 telegram_get.py
看起来像这样:
#import libraries and logging in
def file_handler(Update,context: CallbackContext):
file = context.bot.getFile(Update.message.document.file_id)
print("file_id: " + str(Update.message.document.file_id))
file.download()
def execute_chat():
updater = Updater(token,use_context=True)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler("start",start))
dispatcher.add_handler(CommandHandler("help",help_command))
dispatcher.add_handler(MessageHandler(Filters.document,file_handler))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
execute_chat()
还有file_trigger.py
:
# import library
path_folder = "C:/Users/User/Desktop/python/projects/Telegram-Database/"
path_folder_jobs = "C:/Users/User/Desktop/python/projects/Telegram-Database/files/jobs"
path_folder_corona = "C:/Users/User/Desktop/python/projects/Telegram-Database/files/corona"
path_folder_etc = "C:/Users/User/Desktop/python/projects/Telegram-Database/files/etc"
def on_created(event):
print(f"{event.src_path} has been created.")
def on_moved(event):
print(f"Moved {event.src_path} to {event.dest_path}")
def trigger_files(path):
my_event_handler = PatternMatchingEventHandler("*","",False,True)
my_event_handler.on_created = on_created
my_event_handler.on_moved = on_moved
my_observer = Observer()
my_observer.schedule(my_event_handler,path,recursive=True)
my_observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
my_observer.stop()
my_observer.join()
if __name__ == '__main__':
trigger_files(path_folder)
trigger_files(path_folder_jobs)
trigger_files(path_folder_corona)
trigger_files(path_folder_etc)
这里我试图同时执行这两个脚本,所以 telegram_get.py
运行以下载聊天中的所有文件,而 file_trigger.py
查看新文件并进一步触发该功能。但显然, file_trigger.py
没有被触发。即使有一个新文件,它也不会打印出消息。但是,我也没有收到任何错误。所以我不确定发生了什么。
我尝试使用不同的方法,例如 Popen 和 open,但由于没有错误,我很难理解它。任何建议将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)