Отладка: запуск скрипта Python из диспетчера задач Windows

#python #python-3.x

#python #python-3.x

Вопрос:

Я пытаюсь запустить программу на Python с помощью планировщика задач Windows. В указанное время я вижу, что командное окно ненадолго появляется, а затем исчезает. Однако предполагается, что скрипт 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 для планировщика задач Windows Windows 7: C:Pythonpython.exe Добавьте аргументы: «C:PythonProjectReportCreator.py «

Скриншот

Комментарии:

1. Возможно, lala.txt находится в c:Python папке. Можете ли вы убедиться, что его там нет?

2. Нет, я только что проверил, что его там нет. На самом деле я ищу с помощью окна поиска Windows, которое вы получаете, щелкнув значок Windows в левом нижнем меню, таким образом, я могу найти файл в любом месте, если он существует.

3. При запуске задачи текущий каталог может находиться в каталоге, у вас нет разрешения на создание файла. Попробуйте либо указать абсолютный путь к файлу lala.txt , либо указать каталог в Start in настройке запланированной задачи в Task Scheduler .

Ответ №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:WINDOWSsystem32 . Я предполагаю, что он пытается выполнить запись в папку 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)