0

私はPythonが初めてです。.pyファイルを開いて、このコマンドをファイル「sud​​o 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

または

ユーザー入力を必要とするプログラムを自動化するために一般的に使用される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 に答える
0

端末ではなく stdin からパスワードを読み取るために使用sudo -Sされる which を使用します。

import os
os.system("sudo -S vbetool dpms off < passwd")
于 2012-06-06T04:09:33.210 に答える