关于pexpect模块的新bie澄清

时间:2012-07-02 07:46:39

标签: python pexpect

我正在浏览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模块,因为它提供了交互式控制台

如果我在这里遗失任何东西,请告诉我?

谢谢, -Vijay

1 个答案:

答案 0 :(得分:2)

cd是shell的内置函数。您可以在任何想要使用run()方法cwd关键字arg的目录中运行您想要执行的任何命令:

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

有关详细信息,请查看以下网址上的API文档:http://pexpect.sourceforge.net/pexpect.html

或者,您可以在执行pexpect os.chdir()方法之前使用Python的run函数更改当前工作目录:

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

请参阅:http://docs.python.org/library/os.html