Разрешение отклонено при записи в файл в Python
Я хочу создать файл и записать в него целочисленные данные в python. Например, у меня есть переменная abc = 3, и я пытаюсь записать ее в файл (который не существует, и я полагаю, что python создаст его самостоятельно):
fout = open("newfile.dat", "w")
fout.write(abc)
Во-первых, будет ли python создавать newfile.dat самостоятельно? Во-вторых, это дает мне эту ошибку:
IOError: [Errno 13] Permission denied: 'newfile.dat'
Что здесь не так?
Ответы
Ответ 1
Это также происходит при попытке создать файл с тем же именем, что и каталог:
import os
conflict = 'conflict'
# Create a directory with a given name
try:
os.makedirs(conflict)
except OSError:
if not os.path.isdir(conflict):
raise
# Attempt to create a file with the same name
file = open(conflict, 'w+')
Результат:
IOError: [Errno 13] Permission denied: 'conflict'
Ответ 2
Закройте файл, если он все еще открыт на вашем компьютере, а затем попробуйте запустить код python.
Я надеюсь, что это работает.
Ответ 3
Чтобы ответить на ваш первый вопрос: да, если файл не существует, Python его создаст.
Во-вторых, пользователь (самостоятельно), на котором запущен python script, не имеет прав записи для создания файла в каталоге.
Ответ 4
У меня была такая же проблема с использованием cmd (командной строки Windows), как это
C:\Windows\System32> "G:\my folder\myProgram.py"
Где внутри файла Python что-то вроде этого
myfile = open('myOutput.txt', 'w')
Ошибка состояла в том, что когда вы не используете полный путь, python будет использовать ваш текущий каталог, и потому что каталог по умолчанию на cmd
C:\Windows\System32
это не сработает, так как оно защищено от записи и требует разрешения и подтверждения от администратора
Вместо этого вы должны использовать полные пути, например:
myfile = open('G:\my folder\myOutput.txt', 'w')
Ответ 5
Если вы выполняете скрипт python через терминал, передайте --user для предоставления прав администратора.
Работал на меня!
Если вы используете Windows, запустите файл от имени администратора.
Если вы выполняете через cmd, запустите cmd от имени администратора и выполните скрипт python.
Ответ 6
Отказано в разрешении просто означает, что система не имеет разрешения на запись файла в эту папку. Дайте разрешения на папку с помощью "sudo chmod 777" из терминала и попробуйте запустить ее. Это сработало для меня.
Ответ 7
Убедитесь, что у вас есть права на запись для этого каталога, который вы пытались создать файл по свойствам
Ответ 8
Чтобы записать файл с помощью сценария Python, сначала необходимо создать текстовый файл.
Пример Файл, такой как C: /logs/logs.txt, должен существовать.
Только тогда работает следующий код:
logfile=open(r"C:/logs/logs.txt",'w')
Итак, резюме.
-
Текстовый файл должен существовать в указанном месте
- Убедитесь, что вы закрыли файл перед запуском скрипта Python.