#python #windows #windows-7 #file-permissions
Вопрос:
Поэтому я написал простой скрипт для управления запуском, разделив его на разные настройки
Затем я написал простой сценарий установки, который должен просто создавать каталоги
Они оба отлично работали на macOS и Linux, когда я их тестировал
но когда я попытался запустить их в Windows, я получил ошибку разрешения
Traceback (most recent call last):
File ".install.py", line 13, in <module>
with open(yml_file_dir file_sep 'conf.yml', 'w') as f:
PermissionError: [Errno 13] Permission denied: 'C:\Users\kerem\AppData\Local\Kerem Göksu\Startups\0.1.0-alpha\conf.yml'
сценарий установки:
import os, platform
from appdirs import AppDirs
dirs = AppDirs("Startups", "Kerem Göksu", version="0.1.0-alpha")
file_sep = "\" if platform.system() == "Windows" else "/"
yml_file_dir = dirs.user_data_dir
try: os.makedirs(yml_file_dir)
except FileExistsError: pass
with open(yml_file_dir file_sep 'conf.yml', 'w') as f:
f.write("""startup_prompt: 'What startup will you use today? '
startups:
hello:
- echo Hello, World!""")
Итак, как я могу получить разрешение в Windows? В Windows нет sudo.
Или есть способ, которым я мог бы сделать это без необходимости получать разрешение?
Я использую Windows 7 версии 6.1 Номер сборки 7601, SP1
Комментарии:
1. В Windows нет
sudo
. Верно, но есть почти эквивалентный. Это называется Запуск от имени администратора . Уappdata
папки могут быть ограниченные права доступа.2. Используйте
os.path.join
вместо объединения строк. Для быстрогоShellExecute
повышения высоты используйте pywin32 или ctypes