Je travaille sur Ubuntu et écrit un code en python. Je veux ajouter une ligne dans un fichier qui est placé dans le répertoire racine:répertoire racine IOError: [Errno 13] Autorisation refusée:
ins = open("/usr/local/etc/conf.d/test.txt", "r")
array = []
for line in ins:
array.append(line)
array.append('add this new line')
f = open("/usr/local/etc/gnuradio/test.txt",'w')
for line in array:
f.write(line)
Je reçois cette erreur:
Traceback (most recent call last):
File "overwrite.py", line 6, in <module>
f = open("/usr/local/etc/gnuradio/test.txt",'w')
IOError: [Errno 13] Permission denied: '/usr/local/etc/gnuradio/test.txt'
Je sais que nous n'avons pas la permission de changer quoi que ce soit dans le répertoire racine sans en utilisant sudo. Mais y a-t-il un moyen de mettre à jour ce fichier depuis mon module python?
Ce n'est pas un problème Python, ou même un problème de programmation; C'est une question fondamentale sur l'utilisation de systèmes de type Unix. – abarnert
oui vous avez raison mais je sais que python a une solution pour exécuter la commande sudo comme pexpect, donc j'ai pensé qu'il pourrait avoir une solution pour un tel problème – user2460869
'pexpect' ne sait rien à propos de' sudo'. Bien sûr, vous pouvez écrire du code qui l'utilise pour piloter 'sudo' pour exécuter une autre instance de Python sur un script qui fait le travail ... mais pourquoi? Si vous voulez vraiment laisser votre mot de passe en texte clair, il existe des façons plus amusantes de le faire. – abarnert