繁体   English   中英

从 Windows 计划任务运行的 Python 脚本将数据存储在错误的文件夹中

[英]Python script running from windows scheduled task is storing data in wrong folder

我有一个抓取数据的脚本,它将其保存到我的本地数据库中,并从网页中截取屏幕截图并将其存储在本地文件夹中。 db 和 screenshots 文件夹都位于我桌面上的一个文件夹中。

这是我脚本中的一些代码行。

connection = sqlite3.connect('NW.db')

    if not os.path.exists('nw_' + req[1]):
        os.mkdir('nw_' + req[1])
    # folder = f'nw_{req[1]}\{Month}_{Hire_Start}'
    folder = f'nw_{req[1]}\{Hire_Start}'
    if not os.path.exists(folder):
        os.mkdir(folder)

    folder_w = f'nw_{req[1]}'
    if not os.path.exists(folder_w):
        os.mkdir(folder_w)

ss.full_Screenshot(driver, save_path=r'.', image_name=folder + "NW_" + req[1] + "_" + days3 + "_" + Hire_Start + ".jpg")

一切正常,它存储在我运行脚本的同一个文件夹中。 但是,当我创建一个 Windows 计划任务以在特定时间运行此脚本时,它将 db 文件和屏幕截图文件夹存储在以下位置C:\Windows\System32而不是我在桌面上的文件夹

我制作了一个批处理文件并将其添加到我的计划任务中

"C:\Users\Administrator\AppData\Local\Programs\Python\Python310\python.exe" "C:\Users\Administrator\Desktop\Python_Kishen\NW_offer.py"
pause 

截图窗口计划任务

您不应该依赖从系统运行的脚本中的“当前”或“工作”目录。 指定输出文件所在的完整路径。

可以使用 os.chdir() 将首选目的地设置为当前目录,但这不是最好的方法。 完整路径。

调度程序进程可能具有不同的操作位置,并且看起来您正在使用相对路径。 如果您有一个想要这一切的地方,我建议您使用完整路径。 然后从哪里运行代码都没有关系。

附带说明一下,您似乎正在做很多重复的字符串构建。 为什么不这样做一次并将结果存储在变量中? 只需在需要该值的几个地方使用该变量即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM