Чтение / запись файлов на Python

#python #file #file-io #permissions

#python #файл #file-io #разрешения

Вопрос:

Мне нужно сделать файл читаемым и доступным для записи на Python. В настоящее время файл доступен только для чтения. Я работаю на компьютере с Windows. Я запускаю следующий код:

 
os.chmod(projectPath, stat.S_IWRITE | stat.S_IREAD)
  

в файле, который необходимо прочитать / записать. Но когда я пытаюсь выполнить файл, который необходимо прочитать для записи, я получаю следующее:

 
ISDEV : fatal error -2200: Could not overwrite file C:WINDOWSTempSTixInstallerSTixInstallShield.ism
  

Очевидно, что это не приводит к чтению / записи файла. Затем я проверяю права доступа к файлу, и он по-прежнему доступен только для чтения.

Есть идеи, почему это не удается, или если есть более простой способ сделать это, которого мне не хватает?

Комментарии:

1. @RestRisiko Как я могу определить, заблокирован ли он?

Ответ №1:

Я думаю, вам нужен только stat.Режим S_IWRITE. Я только что провел тест с этим кодом

 def main():
    path = "C:\temp\log.txt"
    os.chmod(path, stat.S_IWRITE)
  

И он установил файл, который был доступен только для чтения, не только для чтения, где, как и при запуске его с помощью S_IREAD, вместо этого он установил его обратно только для чтения

Ответ №2:

Убедитесь, что у вас есть разрешения на изменение файла. Кто является владельцем файла? Это тот, кто запускает скрипт на Python? Все это должно быть принято во внимание.

Комментарии:

1. На самом деле он запускается как часть скрипта сборки, который имеет полный доступ к файлу. Я подумал, что, возможно, stat.S_IWRITE | stat.S_IREAD на самом деле делает не то, что я думаю, или здесь происходит какая-то специфическая для ОС вещь под Windows.