0

我是 python 新手,我只是打开 .py 文件并将此命令写入文件“sudo vbetool dpms off”中。但是在运行文件时,它显示无效的语法。如何将此命令写入python文件。

4

3 回答 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 -Swhich 用于从标准输入而不是终端读取密码。将其存储在文件中,例如 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 回答