Tempfile Python с менеджером контекста в Windows 10 приводит к PermissionError: [Errno 13] - PullRequest
0 голосов
/ 09 марта 2019

ОС: Windows 10

Python: 3.6 (Анаконда)

Я пытаюсь использовать простой временный файл с менеджером контекстанаписать простой CSV.

import csv
import tempfile

fp = tempfile.TemporaryFile()
with open(fp.name,'w',newline='') as f:
    csv_out = csv.writer(f)
    csv_out.writerow(['first_name','last_name'])
    csv_out.writerow(['foo','bar'])

Запуск этого приводит к этой ошибке разрешения:

with open(fp.name,'w',newline='') as f:
E       PermissionError: [Errno 13] Permission denied: 'C:\\TEMP\\tmp2bqke7f6'

Изменение статуса разрешения Windows для временного каталога C:\TEMP\, чтобы разрешить полный доступ для всехпользователи не помогают.

За это сообщение Я попытался запустить Windows cmd от имени администратора, но все равно не получилось.

1 Ответ

1 голос
/ 09 марта 2019

В поисках аналогичной проблемы ( ссылка ) я нашел (и протестировал) решение, которое также подходит для вашей проблемы.

Вам просто нужно добавить delete=False аргумент в вашей строке fp = tempfile.TemporaryFile().

Кажется, что файл на самом деле создается в этой строке, а затем попытка открыть его и записать его во второй раз (with open(fp.name)...) запрещает вам делать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...