控制Python交互式sh的输入/输出

2024-05-29 06:26:34 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

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

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

^{pr2}$

我尝试将3 + 5\n改为print 3\n,但它仍然挂在input_line。 有更好的办法吗?我需要评估很多 表达式,所以我不想通过临时文件来实现。感谢任何帮助, 谢谢。在


Tags: and代码程序falseinput表达式情况键盘
2条回答

我不打算评论整个概念的怪异之处(驱动python计算o'caml中的表达式),但似乎您可能希望编写一个python程序,它是一个从管道读取/写入字符串的eval循环。查看eval命令。在

您可以通过命令行向解释器提供命令:

$ python -c 'a = 3; b = 5; print a > b'
False

你的需要够了吗?在

如果您担心反复打开解释器,您可以同时生成和计算多个表达式。我不确定上限是多少,但我能够评估并打印200个a = 3; b = 5; print a > b;的串联副本,没有任何问题。在

相关问题 更多 >

    热门问题