我有一个名为“master”的 python 文件,旨在执行位于名为“py”的文件夹中的几个函数。在“py”中分配的函数之一写入输出如下:
def say_hello():
#Import
from datetime import datetime
#Output file
file_path = r"C:\Users\jquinta\Documents\output2.txt"
#Time
now = datetime.now()
current_time = now.strftime("%d/%m/%Y %H:%M:%S")
with open(file_path, "w") as f:
f.write(f"hello world ({current_time})")
主py文件运行为:
#Base packages
import sys
import os
import os.path
#Read functions
os.chdir(r"C:\Users\jquinta\Documents\project")
sys.path.append('py')
#Importing functions
from say_hello import say_hello
say_hello()
#Import
from datetime import datetime
#Output file
file_path = r"C:\Users\jquinta\Documents\output1.txt"
#Time
now = datetime.now()
current_time = now.strftime("%d/%m/%Y %H:%M:%S")
with open(file_path, "w") as f:
f.write(f"hello world ({current_time})")
注意所有辅助功能都位于“项目”内的子文件夹“py”中。当我通过 Spyder 运行 master 时,output1 和 output2 都按照代码中的要求编写。但是,如果我通过 Windows 任务计划安排任务,则只写入 output1。似乎通过任务计划,主文件无法运行辅助功能。有什么想法吗?
在我看来,检查两件事,也许它会帮助解决你的问题。首先,通过 Windows Task Schedule 调度主文件时,工作目录可能没有设置正确的路径,Python 解释器可能无法找到 py 文件夹和所需的模块。 其次,问题可能与代码中使用相对路径有关。从不同位置或通过不同用户帐户运行脚本时,可能无法正确解析路径。为避免这种情况,您可以在代码中定义文件路径时使用绝对路径而不是相对路径。