gpt4 book ai didi

python - 控制 Python 交互式 shell 的输入/输出

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:35 25 4
gpt4 key购买 nike

我必须评估(数百万个)Python 表达式,例如(int(a) >> 8 == 4) 和 b在我的 OCaml 程序中。有 pycaml 但我没能让它工作。

于是我转向另一个想法:直接控制Python解释器的输入/输出。

理想情况下,我想拦截解释器本身的输入/输出。通过发送 a = 3 b = 5 a > b 给解释器,我就可以得到结果 False,就好像我是通过键盘完成的一样..

>>> a = 3
>>> b = 5
>>> a > b
False
>>>

但是,我的代码没有按预期工作(虽然相同的代码适用于某些交互式程序)

let (readme, writeme) = Unix.open_process "python -u";; 
let _ = output_string writeme "3 + 5\n" in
let _ = flush writeme in
let result = input_line readme in
print_endline result;;

我尝试将 3 + 5\n 更改为 print 3\n,但它仍然卡在 input_line 处。有没有更好的方法来做到这一点?我需要评估很多表达式,所以我真的不想通过临时文件来做到这一点。任何帮助表示赞赏,谢谢。

最佳答案

我不打算评论整个概念的怪异之处(驱动 python 计算来自 o'caml 的表达式)但看起来你可能想要研究编写一个 python 程序,它是一个 eval 循环,读取/从/向管道写入字符串。查找 eval 命令。

关于python - 控制 Python 交互式 shell 的输入/输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6326190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com