因此,我编写了一个脚本来汇总一些新闻通讯并通过 Telegram 发送给我。该脚本本身运行完美。现在我尝试每天早上 7 点通过 Ubun 上的 crontab 运行此脚本...
因此,我编写了一个脚本来汇总一些新闻通讯并通过 Telegram 发送给我。该脚本本身运行完美。现在,我尝试每天早上 7 点通过 Ubunutu 服务器上的 crontab 运行此脚本。日志文件看起来不错,我在脚本中使用的每个 print() 都正常显示而没有错误,但它不会发送消息。
我的 Crontab 命令:
00 12 * * * DISPLAY=:0 /usr/bin/python3 /root/data/App/Briefing/main.py >> /home/main.log &2>1
Python 脚本:
主程序
import ai as AiHandler
import mail as MailHandler
import send as Telegram
import pandas as pd
from datetime import date
def start():
files = MailHandler.scanEmails()
files = AiHandler.summarize(files)
print(files)
data = pd.read_csv('checkpoint.csv', sep=';')
checkpoint = createMsg(data)
s = f"morgentliches Briefing vom {date.today().strftime("%d.%m.%Y")}".replace(".", "\\.")
s += "\n\n\n *Die* *Lage* *am* *Morgen* *\\-* *Spiegel*\n\n\n" + createMsg(pd.read_csv('spiegel.csv', sep=';'))
s += "\n\n\n *Berlin* *\\-* *Tagesspiegel* *Checkpoint*\n\n\n" + checkpoint
s += "\n\n\n *Tech* *Update* *\\-* *ManagerMagazin* \n\n\n" + createMsg(pd.read_csv('manager.csv', sep=';'))
Telegram.sendMessage(s)
def createMsg(data):
s = ""
for i in range(5):
thema = data['Thema'][i].replace('*', '\\*')
zsm = data['Zusammenfassung'][i].replace('*', '\\*')
s += "\t" + "*" + thema + "*" + "\n"
s += zsm + "\n"
s = s.replace("-", "\\-")
s = s.replace(".", "\\.")
s = s.replace("(", "\\(")
s = s.replace(")", "\\)")
#s = s.replace("*", "\\*")
s = s.replace("!", "\\!")
return s
start()
发送.py
import telebot
def sendMessage(msg):
bot = telebot.TeleBot("XXXXXX")
bot.send_message(chat_id="@morgenbriefing", text=msg, parse_mode="MarkdownV2")
我尝试将 DISPLAY:=0 添加到 crontab 命令中,但没有帮助
怎么可能它对你有用,但对我没用?:) 比较日期取 1 :: 比较 DATE1 和 DATE2 变量...... | 失败| 评估表达式'datetime.datetime.fromisoformat(\'2021-07-23T14:07:21Z\')'失败:ValueError:无效的 isoformat 字符串:'2021-07-23T14:07:21Z' 比较日期取 2 :: 比较 DATE1 和 DATE2 变量...... | 失败|评估表达式 'datetime.datetime.fromisoformat(\'2021-07-23T14:07:21Z\')==datetime.datetime.fromisoformat(\'2021-07-23T16:07:21+02:00\')' 失败:ValueError:无效的 isoformat 字符串:'2021-07-23T14:07:21Z'