【问题标题】:Debug: Running Python Script from Windows task Manager调试:从 Windows 任务管理器运行 Python 脚本
【发布时间】:2016-10-23 01:29:42
【问题描述】:

我正在尝试使用 Windows 任务调度程序运行 Python 程序。在规定的时间,我看到一个命令窗口短暂出现然后消失。但是 Python 脚本应该创建一个文件。永远不会创建该文件。我使用 Windows 搜索搜索了该文件,但它不在任何地方。但是,当我使用命令行运行脚本时,文件会按预期创建。我做错了什么?

以下是我的设置:

Python 程序: ---------------------

import os

print('start of simple test')
testList ="1,2,3"
with open('lala.txt', 'w') as testfile:
    testfile.write(testList)

----------

以下是我的 Windows 7 任务计划程序窗口中的操作设置 程序/脚本:C:\Python\python.exe 添加参数:“C:\PythonProject\ReportCreator.py”

Screenshot

【问题讨论】:

  • 可能lala.txtc:\Python 文件夹下。你能确认它不存在吗?
  • 不,我刚刚检查过它不存在。事实上,我正在使用 Windows 搜索窗口进行搜索,您可以通过单击左下方菜单中的 Windows 图标获得该窗口,这样我可以在任何地方找到该文件(如果存在)。
  • 任务启动时,当前目录可能在你无权创建文件的目录下。尝试指定文件lala.txt 的绝对路径或在Task Scheduler 的计划任务的Start in 设置中指定目录。

标签: python python-3.x


【解决方案1】:

您可以使用此代码查看调度程序在哪个文件夹中运行您的ReportCreator.py。创建一个python文件scheduler_path.py并使用调度器运行它:

import os

print('current path:', os.path.abspath(os.curdir))
input('press enter to continue')  # input is for Python3. Use raw_input for Python2

它给了我这个输出:current path: C:\WINDOWS\system32。我的猜测是它正在尝试写入 system32 文件夹,但没有这样做的权限。

您可以提供写入文件的绝对路径,或者如果您想在与脚本文件相同的文件夹中创建它,您可以这样做:

import os

print('start of simple test')
test_list ='1,2,3'
script_folder = os.path.dirname(__file__)  # in your case this should become C:\PythonProject\
filename = 'lala.txt'
filepath = os.path.join(script_folder, filename)
with open(filepath, 'wt') as test_file:
    test_file.write(test_list)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2016-04-09
    • 1970-01-01
    • 2018-01-20
    相关资源
    最近更新 更多