Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python代码无法在任务计划程序中运行_Python_Outlook_Scheduled Tasks_Windows Task Scheduler - Fatal编程技术网

Python代码无法在任务计划程序中运行

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

我编写了一个python代码来下载电子邮件附件,当我手动启动它时(只需双击/用python打开),这段代码运行良好

但是,当我尝试在task scheduler中设置任务时,作业会一直运行,并且看不到任何输出(输出文件夹中没有附件)。我做错了什么

我尝试了我能想到的所有计划程序设置组合(仅在用户登录时运行/无论用户是否登录都运行;以最高权限运行)

我还尝试用不同的方式定义动作:

-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