IO в каталоге программных файлов - PullRequest
3 голосов
/ 30 апреля 2011

Я создал программу, которая собирает данные из файла .txt, читая его, и записывает данные в другой файл .txt.Тем не менее, есть проблема.Когда я запускаю программу в обычном каталоге, она отлично работает.Проблема возникает, когда я помещаю ее в каталог C: \ Program Files .Когда я запускаю его, я получаю IOERROR: [Errno 13] В доступе отказано: «мой подкаталог» .Я полагаю, что это, вероятно, связано с тем, что в этом каталоге есть дополнительные протоколы, когда дело доходит до редактирования файлов внутри него.

Это в Windows 7, если это еще не было очевидно.

Также, если это имеет значение, программа была написана на Python, а затем преобразована в .exe с py2exe.

Ответы [ 4 ]

3 голосов
/ 30 апреля 2011

Для всех каталогов в \Program Files и \Windows, а также в корне C:\ требуются права администратора в Windows Vista и 7 (и XP, если пользователь работает без прав администратора, что по умолчанию ). Вы не должны пытаться писать там в первую очередь. Это мера безопасности, помогающая предотвратить проникновение вредоносных программ в те места, где они не должны. Поскольку Vista выпущена несколько лет назад, на UAC доступно множество статей. Вы можете начать здесь .

2 голосов
/ 30 апреля 2011

Я предлагаю сохранить папку в подкаталоге% appdata% \ my.Для этого вам не понадобятся права администратора.

2 голосов
/ 30 апреля 2011

Наиболее вероятной причиной этого является то, что каталоги «Program Files» в Windows 7 требуют административных прав для создания подкаталогов.

Вы можете запустить python от имени администратора (удерживать Shift, щелкнуть правой кнопкой мыши python.exe, запускать от имени администратора) или записать в каталог, который не является Program Files.

0 голосов
/ 30 апреля 2011

Вам необходимо запустить эту программу как администратор или учетную запись, для которой вы предоставили разрешения, если хотите записать в папку программных файлов.Если вы запустите исполняемый файл как обычный пользователь, у вас не будет доступа.

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