我是 python 新手,我只是打开 .py 文件并将此命令写入文件“sudo vbetool dpms off”中。但是在运行文件时,它显示无效的语法。如何将此命令写入python文件。
问问题
481 次
3 回答
2
使用标准库子进程
import subprocess
passwd='mypassword'
subprocess.call('echo %s|sudo -S vbetool dpms off' % passwd, shell=True)
于 2012-06-06T03:57:28.877 回答
0
使用sudo -S
which 用于从标准输入而不是终端读取密码。将其存储在文件中,例如 passwd 然后执行:
import os
os.system("sudo -S vbetool dpms off < passwd")
于 2012-06-06T04:09:33.210 回答
0
或者
您可以使用pexpect库,该库通常用于自动化需要用户输入的程序。
import pexpect
child = pexpect.spawn('sudo vbetool dpms off')
child.expect('Password:')
child.sendline(password)
child.expect(pexpect.EOF, timeout=None)
output_data = child.before
在这里,您只需提供您期望的匹配提示,然后发送密码。之后,您可以收集输出并进行处理。
当您有不接受密码管道的程序时,这更通用并且很有用。
你可以安装这个模块
easy_install pexpect
or
pip install pexpect
于 2012-06-06T04:28:25.370 回答