«PermissionError: [Errno 13] В доступе отказано» в cmd, но работает в PyCharm - PullRequest
0 голосов
/ 26 апреля 2020

Я использую приведенный ниже код для вывода массива dicts в файл csv. В PyCharm он создает новый файл или обновляет существующий файл с тем же именем. При запуске из файла .bat, он работает, как указано выше. Когда я планирую запустить файл .bat в Windows Task Scheduler, он завершается неудачно с: PermissionError: [Errno 13] Отказано в разрешении: 'test-25-Apr-2020.csv'

Things I ' мы уже пробовали:

  1. Обновлена ​​папка проекта «Разрешения безопасности», так что для каждого типа пользователей все разрешения имеют «Разрешено».
  2. Подтверждено, что файл не был открыт во время его записи.
  3. Создал ярлык .bat и установил его в качестве запуска от имени администратора, и сослался на него в планировщике задач .
  4. Перемещена папка проекта из D: \ прямо под C: \

.

import csv
import datetime

def downloadCSV(result, file):
    keys = result[0].keys()
    with open(file, 'w', newline='') as output_file:
        dict_writer = csv.DictWriter(output_file, keys)
        dict_writer.writeheader()
        dict_writer.writerows(result)

inputList = [
    {"test": "value1"},
    {"test": "value2"},
    {"test": "value3"},
    { "test": "value4"}
]

timeNow = datetime.datetime.now()
formattedTime = timeNow.strftime("%d") + "-" + timeNow.strftime("%b") + "-" + timeNow.strftime("%Y")
fileName = 'test-' + formattedTime + '.csv'

downloadCSV(inputList, fileName)

1 Ответ

0 голосов
/ 28 апреля 2020

Для его работы были внесены два изменения:

  1. В соответствии с комментарием Марка я обновил настройку планировщика заданий для этой задачи на «Запуск с самыми высокими привилегиями» на вкладке «Общие». Это исправило ошибку, но файл все еще не создавался.
  2. Я указал путь создания файла: с открытым ('C: / test /' + file, 'w', newline = '') as output_file: файл создан!
...