Python代码无法在任务计划程序中运行
我编写了一个python代码来下载电子邮件附件,当我手动启动它时(只需双击/用python打开),这段代码运行良好 但是,当我尝试在task scheduler中设置任务时,作业会一直运行,并且看不到任何输出(输出文件夹中没有附件)。我做错了什么 我尝试了我能想到的所有计划程序设置组合(仅在用户登录时运行/无论用户是否登录都运行;以最高权限运行) 我还尝试用不同的方式定义动作:Python代码无法在任务计划程序中运行,python,outlook,scheduled-tasks,windows-task-scheduler,Python,Outlook,Scheduled Tasks,Windows Task Scheduler,我编写了一个python代码来下载电子邮件附件,当我手动启动它时(只需双击/用python打开),这段代码运行良好 但是,当我尝试在task scheduler中设置任务时,作业会一直运行,并且看不到任何输出(输出文件夹中没有附件)。我做错了什么 我尝试了我能想到的所有计划程序设置组合(仅在用户登录时运行/无论用户是否登录都运行;以最高权限运行) 我还尝试用不同的方式定义动作: -script: C:\Windows\System32\cmd.exe -argument: "C:\Program
-script: C:\Windows\System32\cmd.exe
-argument: "C:\ProgramData\Anaconda3\python.exe "C:\Users\LN\Documents\PythonScripts\outlookdownload.py""
-script: C:\ProgramData\Anaconda3\python.exe
-argument: "C:\Users\LN\Documents\PythonScripts\outlookdownload.py"
-script: C:\ProgramData\Anaconda3\python.exe
-argument: "C:\Users\LN\Documents\PythonScripts\outlookdownload.py"
-start in: C:\Users\LN\Documents\PythonScripts\
-script: C:\ProgramData\Anaconda3\python.exe
-argument: "C:\Users\LN\Documents\PythonScripts\outlookdownload.py"
-start in: C:\Users\LN\Documents\PythonScripts\"
下面是python代码:
outpfolder= [output folder link]
import datetime
import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.Folders('Elo Inventory').Folders('Inbox')
messages = inbox.Items
message = messages.GetLast()
sentdate = message.senton.date()
datelimit = (datetime.date.today () - datetime.timedelta (days=7))
#define function to save attachment:
def OL_Attsave(outpath, name, filenamefilter):
attachments = message.Attachments
att_count = attachments.Count
for i in range(1,att_count+1):
attachment = attachments.Item(i)
if filenamefilter in attachment.FileName and "image" not in attachment.FileName:
attachment.SaveASFile(outpath + str(sentdate)+"_"+name+"_" +str(attachment.Filename))
return "saved " + str(att_count) + " files for " + name +" to " + outpath
while sentdate>datelimit:
try:
#Company1:
if message.SenderEmailAddress == "abc@company1.com" and message.subject == "INV ELO":
outpath = outpfolder + "company1\\"
name = 'company1'
OL_Attsave(outpath, name ,'')
#Company2:
elif "@company2.com" in message.SenderEmailAddress:
outpath = outpfolder + "company2\\"
name = 'company2'
OL_Attsave(outpath, name, 'INV')
message = messages.GetPrevious()
sentdate = message.senton.date()
except:
message = messages.GetPrevious()
sentdate = message.senton.date()
你需要:#/usr/bin/env-python。是否需要:chmod+xI尝试在link-in参数和task scheduler open命令提示符之前添加chmod+x,但没有发生其他情况。我想是吧/不需要usr/bin/env python,因为我只有一个版本的python,并且我直接指向anaconda文件夹中的python.exe文件。(我还尝试在Anaconda之外安装Python,但在使用之前会删除一个版本)。cmd提示符中的C:\ProgramData\Anaconda3\python.exe“C:\Users\LN\Documents\PythonScripts\outlookdownload.py”或双击.py文件可以工作,但无法设置任务计划程序使其正常运行。您始终需要“#”/usr/bin/env python'bc它告诉shell在哪里查找解释器。您使用的是什么office&OS?我使用的是Microsoft office 365 32位。我的笔记本电脑系统类型是基于x64的PC,系统目录是C:\WINDOWS\System32是否需要:#/usr/bin/env-python。是否需要:chmod+xI尝试在link-in参数和task scheduler open命令提示符之前添加chmod+x,但没有发生其他情况。我想是吧/不需要usr/bin/env python,因为我只有一个版本的python,并且我直接指向anaconda文件夹中的python.exe文件。(我还尝试在Anaconda之外安装Python,但在使用之前会删除一个版本)。cmd提示符中的C:\ProgramData\Anaconda3\python.exe“C:\Users\LN\Documents\PythonScripts\outlookdownload.py”或双击.py文件可以工作,但无法设置任务计划程序使其正常运行。您始终需要“#”/usr/bin/env python'bc它告诉shell在哪里查找解释器。您使用的是什么office&OS?我使用的是Microsoft office 365 32位。我的笔记本电脑系统类型是基于x64的PC,系统目录是C:\WINDOWS\system32