通过 Pexpect 在另一个目录中启动程序

Launch a program in another directory via Pexpect

我正在开发一个 Python 脚本,该脚本通过 Pexpect 模块控制 C cli 程序。 脚本和程序放在不同的目录下。我可以指定程序的绝对路径,但是有一个问题:

该程序高度依赖于您 运行 它来自的目录:比如说,如果您 运行 它使用 bash,您必须位于它所在的确切目录中中,否则会失败。

据我了解,默认情况下 pexpect.spawn() 将 运行 的目录视为模拟 shell 的 "current directory"。

除了将脚本和程序放在一起之外,我还能做些什么来让它工作?

顺便说一句,Python 是 2.7.6,pexpect==3.3,bash shell

pexpect.spawn() 接受一个 cwd 参数,你能把它设置到想要的目录吗?

pexpect.spawn(<cmd>, cwd="<path>")

可能给你想要的