Crie novos diretórios com Python no Linux

Crie novos diretórios com Python no Linux

Estou executando um script Python em uma nova instalação do Ubuntu 20.04.2. O script verifica se existe um diretório e o cria, caso contrário. O código é:

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

Estou tendo o erro a seguir:

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

No prompt de comando, eu apenas adicionaria um sudo, mas preciso do meu script Python para poder criar esses diretórios. Minha pergunta é como posso permitir que o Python crie novos diretórios?

Responder1

A resposta simples é: você não. Embora eu tenha certeza de que é possível fazer com que seu script solicite e obtenha permissões elevadas, a maneira normal de fazer isso é presumir que quem executa o script tem acesso ao que o script precisa alterar. Afinal, se o usuário não tiver permissão, em primeiro lugar, ele não terá a responsabilidade de executar o script.

Portanto, basta escrever seu script e deixá-lo para o usuário garantir que ele tenha o direito de fazer o que deseja. Em vez disso, você deve modificar seu script para detectar o erro e fornecer uma mensagem de erro mais informativa para que o usuário possa saber a qual diretório ele precisa de acesso e que tipo de acesso. Portanto, em vez de ../log, obtenha o caminho completo e em vez de "permissão negada", verifique quais permissões são necessárias e teste-as antes de tentar a operação. Dessa forma, você pode errar normalmente e dizer ao usuário o que ele precisa.

informação relacionada