#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)