【发布时间】:2013-11-09 22:56:48
【问题描述】:
我可以使用 Python 运行 bc,代码如下:
subprocess.Popen("bc", stdout=subprocess.PIPE).communicate()[0]
但是,这只会启动 bc,我必须手动输入我想要的任何内容,例如 1+1。我想使用 Python 发送 1+1 到 bc 并获取输出。我该怎么做?
【问题讨论】:
-
您阅读文档了吗? “Popen.communicate(input=None) - 与进程交互:发送数据到标准输入。从标准输出和标准错误读取数据,直到到达文件结尾。等待进程终止。可选的输入参数应该是一个字符串发送到子进程,或者 None,如果不应该向子进程发送数据。"
-
其他人评论了如何使用 Popen。我建议您考虑使用 gmpy 或 gmpy2 而不是 bc - 这些是 C 编码的库,用于对可能巨大的数字进行操作,可从 python 调用。
-
我要传递什么来“交流”?
标签: python command-line bc