Comment terminer avec Python sans altérer les paramètres système. Python3.5(3.4)~
Pour entrer le mot de passe d'un autre terminal que le terminal avec sudo, vous devez le transmettre à partir de l'entrée standard avec l'option -S. Vous avez également besoin d'un caractère de saut de ligne.
Passez "mot de passe + caractère de saut de ligne" sous forme de chaîne d'octets à l'entrée d'argument de subprocess.run () (subprocess.check_output pour Python3.4) (l'entrée d'argument a été ajoutée à partir de Python3.4).
Un exemple de montage de plusieurs fichiers ISO en séquence et de leur démontage.
import os
import subprocess
import getpass
import tempfile
#Créer un point de montage temporaire
mp = tempfile.mkdtemp()
#Entrer le mot de passe
passwd = (getpass.getpass() + '\n').encode()
while True:
path = input('Input file path (".quit" to quit) : ')
if path == '.quit':
os.rmdir(mp)
raise SystemExit
subprocess.run(('sudo', '-S',
'mount', '-t', 'iso9660', '-o', 'loop', path, mp),
input=passwd, check=True)
"""Gonyo Gonyo"""
subprocess.run(('sudo', '-S', 'umount', mp), input=passwd, check=True)
http://docs.python.jp/3/library/subprocess.html
Recommended Posts