Запуск Scilab от pexpect - PullRequest
       4

Запуск Scilab от pexpect

1 голос
/ 01 октября 2011

Я пытаюсь запустить scilab, используя модуль pexpect со следующим кодом:

                import pexpect
                c=pexpect.spawn('scilab-adv-cli -nb')
                c.expect('-->')

Когда я делаю

                c.sendline('plot[1,2]')

, появляется график.Но когда я делаю

                c.sendline('[1 2]*[3]')
                c.expect('ans  =')

, а затем

                c.before

, это дает мне следующий результат:

          '  =\r\n \r\n    3.    6.  \r\n \r\n\x1b[?1h\x1b=-->[1 2]*[3]\r\n\x1b[?1l\x1b> '

Как можно обработать вышеуказанный вывод для получениятолько скажите 3. 6. в вышеупомянутом?

Ответы [ 2 ]

1 голос
/ 02 октября 2011

Или попробуйте: http://forge.scilab.org/index.php/p/sciscipy/

1 голос
/ 02 октября 2011

Если все выходные данные, которые вы хотите прочитать, настолько просты, то вы можете сделать:

largenum = 1000
# flush any remaining output
c.read_nonblocking(largenum)
c.sendline('[1 2]*[3]')
# discard unwanted lines until relevant line
for i in range(3): next(c)
# get answer (in this case, a single line)
ans = next(c).strip()
# discard rest of answer
c.read_nonblocking(largenum)

Вы, вероятно, знаете это, вы сильно зависите от того, как CLI scilab выводит данные.

...