Создание новых каталогов с помощью Python в Linux

Создание новых каталогов с помощью Python в Linux

Я запускаю скрипт Python на свежей установке Ubuntu 20.04.2. Скрипт проверяет, существует ли каталог, и создает его, если нет. Код такой:

os.makedirs(f'..{os.sep}logs{os.sep}')

Я получаю следующую ошибку:

PermissionError: [Errno 13] Permission denied: '../logs/'

В командной строке я бы просто добавил sudo, но мне нужен мой скрипт Python, чтобы иметь возможность создавать эти каталоги, поэтому мой вопрос в том, как я могу разрешить Python создавать новые каталоги?

решение1

Простой ответ: не нужно. Хотя я уверен, что ваш скрипт может запросить и получить повышенные разрешения, обычный способ сделать это — предположить, что тот, кто запускает скрипт, имеет доступ к тому, что скрипт должен изменить. В конце концов, если у пользователя нет разрешения, то он вообще не имеет права запускать скрипт.

Так что просто напишите свой скрипт и предоставьте пользователю возможность убедиться, что у него есть право делать то, что он хочет. Вместо этого вам следует изменить свой скрипт, чтобы перехватить ошибку и выдать более информативное сообщение об ошибке, чтобы пользователь мог знать, к какому каталогу ему требуется доступ и какой тип доступа. Так что вместо ../log, получите полный путь и вместо "отказано в доступе" проверьте, какие разрешения требуются, и проверьте их перед попыткой выполнить операцию. Таким образом, вы сможете изящно выйти из ошибки и сообщить пользователю, что ему нужно.

Связанный контент