【发布时间】:2019-11-28 20:42:26
【问题描述】:
当我在批处理文件中运行 SAS 程序和 python 程序时出现此错误。
Input Error: There is no script engine for file extension ".log".
我发现因为它是由任务计划程序安排的,所以错误来自os.getcwd()
我在我的python程序中有。
我只是从运行代码的位置创建一个日志文件夹,并且由于它是从任务计划程序运行的,所以我不知道它是在哪里创建的,甚至会出现错误。当我硬编码并将os.getcwd() 替换为笔记本电脑中的实际路径时。例如:C:\My folder\\,错误消失。
除了在 python 中对路径进行硬编码之外,我该如何解决这个问题? 需要注意的是,如果我使用操作系统代码手动运行批处理文件,它会按预期工作。 Task Scheduler
的处理方式不同【问题讨论】:
-
也许您应该使用
sys.path[0]而不是os.getcwd(),因为当前工作目录与保存运行脚本的路径不同。事实上,您的任务调度程序可能会以受良好保护的\Windows\System32\目录作为当前目录运行。 -
我使用了任务调度器的启动目录。这样 os.getcwd() 将在该文件夹上启动。
标签: python python-3.x batch-file scheduled-tasks