当前需要python调用git命令自动执行pull操作。因为git还需要输入密码,所以使用到pexpect模块。
最初写法
>>> import pexpect >>> p = pexpect.spawn('cd /home/simonzhang/test/&& git pull ')
但是pexpect不能使用cd命令,报错如下:
pexpect.ExceptionPexpect: The command was not found or was not executable: cd.
只能先切换到相应目录中,然后在执行。修改代码如下,执行成功。
>>> import pexpect >>> import os >>> os.chdir('/home/simonzhang/test/') >>> p = pexpect.spawn('git pull')
还有一点学习。cd为shell自带的命令,当用which和whereis查找时都会报找不到,因为命令是按照系统的PATH变量设置路径进行搜索。用type cd则显示cd为shell buildin命令。pexpect调用时并不加载shell,导致了该问题。
发表评论