python中的子进程

时间:2015-11-26 20:42:29

标签: python ubuntu operating-system

所以我在python中编写一个脚本,将命令直接输入到Ubuntu机器的终端。我使用os.system函数输入命令以获得超级用户访问权限,并且在将密码输入脚本并获得超级用户权限时遇到了一些麻烦。这是我的代码:

AClass

如果有人可以提供帮助,那将不胜感激。对不起,如果这个问题太模糊了。

1 个答案:

答案 0 :(得分:1)

import os                                                                       

def runUpdates():                                                               
    suPassword = input("Enter su password: ")                                   
    os.popen("sudo su - %s date", 'w').write(suPassword)
runUpdates()  

(日期是命令)

使用子流程的其他方式

import subprocess
import getpass

password = getpass.getpass()
p = subprocess.Popen(['sudo', '-p', '-k', '-S', 'date'],                     
                    stdout=subprocess.PIPE,
                    stdin=subprocess.PIPE,                                  
                    stderr=subprocess.STDOUT)
p.communicate(input='{0}\n'.format(password))[0]