np.savetxt () не сохраняет файл при использовании Windows Task Scheduler - PullRequest
0 голосов
/ 22 марта 2020

У меня есть скрипт, который я хотел бы запускать ежедневно, и нашел очень полезную статью о том, как использовать планировщик задач Windows. Как указывалось в руководстве, я создал файл .bat:

"C:\Python\python.exe" "C:\Python\mee6APIData\mee6DataGetter.py"
pause

, и всякий раз, когда я запускаю этот файл, полученный файл .csv записывается правильно. Однако, когда планировщик запускает тот же файл .bat, файл не записывается. Я получаю ошибку разрешения, а также трассировку, которая может помочь:

Traceback (most recent call last):
    File "C:\Python\mee6APIData\mee6DataGetter.py", line 34, in <module>
        loop.run_until_complete(job())
    File "C:\Python\lib\asyncio\base_events.py", line 616, in run_until_complete
        return future.result()
    File "C:\Python\mee6APIData\mee6DataGetter.py", line 31, in job
        await readData(1)
    File "C:\Python\mee6APIData\mee6DataGetter.py", line 28, in readData
        np.savetxt(date + '.csv', initArray, delimiter=', ', comments='', fmt='%s', encoding='utf8')
    File "<__array_function__ internals>", line 5, in savetxt
    File "C:\Python\lib\site-packages\numpy\lib\npyio.py", line 1377, in savetxt
        open(fname, 'wt').close()
PermissionError: [Errno 13] Permission denied: '03-22-2020.csv'

, но нет ошибок разрешения при запуске программы вручную. Я нашел похожий вопрос , который уже задавался, но я также не получил этот метод для работы. Я что-то упускаю? Нужно ли планировщику задач запускать файл .bat от имени администратора? Любая помощь приветствуется!

edit:

В качестве примера моей ошибки следующий код (exampleCode.py, который находится в папке с именем 'mee6APIData') работает правильно при запуске вручную:

import numpy as np
dataArray = ['user_ID', 'server_name', 'server_xp', 'date']
np.savetxt('example.csv', dataArray, delimiter=', ', comments='', fmt='%s', encoding='utf8')

и соответствующий файл .bat:

"C:\Python\python.exe" "C:\Python\mee6APIData\exampleCode.py"
pause

в соответствии с вышеупомянутым учебным пособием , ошибка должна проявиться, поскольку при использовании планировщика задач не сохраняется файл.

1 Ответ

0 голосов
/ 23 марта 2020

np.savetxt() должен иметь файл сохранения, записанный по абсолютному пути, а не рабочий каталог:

np.savetxt('C:\Python\mee6APIData\example.csv', dataArray, delimiter=', ', comments='', fmt='%s', encoding='utf8')
...