2

私はpexpectのドキュメントを調べていましたが、run()関数を呼び出してコマンドを実行し、出力を返すことができると言っていました

だから私は次のことをしましたが、エラーになりました。ここで何か不足していますか?

>>> pexpect.run('pwd')
'/home/vijay\r\n'
>>> pexpect.run('cd /home')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/pexpect.py", line 219, in run
    child = spawn(command, maxread=2000, logfile=logfile, cwd=cwd, env=env)
  File "/usr/lib/python2.7/dist-packages/pexpect.py", line 429, in __init__
    self._spawn (command, args)
  File "/usr/lib/python2.7/dist-packages/pexpect.py", line 516, in _spawn
    raise ExceptionPexpect ('The command was not found or was not executable: %s.' % self.command)
pexpect.ExceptionPexpect: The command was not found or was not executable: cd.
>>> 

私は git リポジトリをダウンロードし、(そのリポジトリに対して) cd を実行してからいくつかのコマンドを渡したいスクリプトを書いています。インタラクティブなコンソールを提供するため、 pexpect モジュールを使用することにしました

ここで何か不足している場合は教えてください。

ありがとう、ビジェイ

4

1 に答える 1

3

cd はシェルの組み込み関数です。cwdrun() メソッドのキーワード引数を使用して、実行したいディレクトリで実行したいコマンドを実行できます。

pexpect.run("pwd", cwd="/home")

詳細については、http: //pexpect.sourceforge.net/pexpect.htmlの API ドキュメントを確認してください。

別の方法として、pexpectメソッドos.chdir()を実行する前に、Python の関数を使用して現在の作業ディレクトリを変更することもできます。run

os.chdir("/home")
pexpect.run("pwd")

参照: http://docs.python.org/library/os.html

于 2012-07-02T07:50:47.553 に答える