0

我有一个名为 age.py 的 Python 脚本

#!/usr/bin/env python
#file: age.py

age = raw_input("Enter your age: ")
print "Your age in dog years is", float(age)/7

我正在使用 Expectj 库,这是我正在使用的 java 代码片段

ExpectJ exp = new ExpectJ();
Spawn s = null;
try {
    s = exp.spawn(test1);       
    s.expect("Enter your age: ");
    System.out.println("Current status: "+s.getCurrentStandardOutContents());
    s.send("y\n");
} catch (IOException e) {
      // TODO Auto-generated catch block
        e.printStackTrace();
        System.out.println("ioe\n");
} catch (TimeoutException e) {
      // TODO Auto-generated catch block
         e.printStackTrace();
         System.out.println("toe\n");
} finally {
         if (s != null) 
         s.stop();           
}

这没有捕获 sysout 消息"Enter your age: ",因此脚本进入无限等待状态。ExpectJ 需要什么修复才能使用 python 脚本?

4

1 回答 1

0

我对 ExpectJ 不熟悉,但我猜它期待一条以新行终止的行,这raw_input不会产生。从raw_input 文档

如果提示参数存在,则将其写入标准输出,不带尾随换行符。

于 2013-04-03T08:08:47.927 回答