У меня есть выражение Lua, которое может печатать некоторую строку. Например: print(1+2)
. Тогда, я называю это выражение в Python 3 с помощью Lupa библиотеки:Сохранение вывода Lua в строку Python
import lupa
lua = lupa.LuaRuntime(unpack_returned_tuples=True)
res = lua.eval('print(1+2)')
Конечно, res
является None
, потому что это выражение не возвращает ничего. Но Мне нужно поймать выход и сохранить в переменной.
Возможно ли это? Как я могу это сделать?
вы пробовали [это] (HTTP: //stackoverflow.com/a/16571630/3005167)? Я не знаю, заботится ли 'lupa' о' sys.stdout', но стоит попробовать. – kazemakase
@kazemakase, я только что попробовал, но это не работает для меня. Во-первых, я заменил 'cStringIO' на' io', потому что я работал над Python 3. Итак, когда я запускал следующий код: 'with Capturing() в качестве вывода: lua.eval ('print (1 + 2)') print (output) ', ** У меня есть пустой список вывода **. – VeLKerr