如何在长时间运行后传递密码

时间:2013-06-05 10:03:44

标签: python wxpython wxwidgets

大家好我正在学习python脚本而且我现在卡住了(使用wxpython for GUI)

我的问题是,我想运行build.system但是build.system在执行开始后要求系统密码,我尝试使用pexpect而我不能使用“sudo”。由于某些原因我不能使用sudo我也试过这个

subprocess.call("echo ******* | sudo -S ./build.system %s" % (str(mode)))

使用Pexpect:

child = pexpect.spawn("./build.system %s" % (str(mode)))
child.interact()
child.expect("[sudo] password for system:")
child.sendline("********")

我也尝试过linux命令。 输出我得到了:

INFO: building for board
INFO: keeping existing sandbox /home/system/sandbox
[sudo] password for system: 

预期是:

INFO: building for Stretch board
INFO: keeping existing sandbox /home/qvisdvr/sandbox
[sudo] password for qvisdvr:********install alarms/alarms.h
install alarms/alarms_int.h
install ccm/ccm.h
install common/defines.h
[contd]

寻找好的建议,提前致谢,

1 个答案:

答案 0 :(得分:0)

      try:
          proc = subprocess.Popen(["./build.system  %s "  % (str(mode))], shell=True)
          proc.stdin.write("******")
          proc.stdin.flush()
      except AttributeError:
          pass

这对我有用。