首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python向bc发送输入并从bc获取输出?

如何使用Python向bc发送输入并从bc获取输出?
EN

Stack Overflow用户
提问于 2013-11-09 22:56:48
回答 2查看 1.1K关注 0票数 1

我可以用以下代码使用Python运行bc:

代码语言:javascript
复制
subprocess.Popen("bc", stdout=subprocess.PIPE).communicate()[0]

但是,这只会启动bc,我必须手动输入任何我想要的东西,例如1+1,我想使用1+1发送1+1到bc并获得输出。我该怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-10 01:58:24

弄明白了。您必须有stdin和stdout,并使用以换行符结尾的字符串进行调用,如下所示:

代码语言:javascript
复制
p = subprocess.Popen("bc", stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate('1+1\n')

输出的输出在哪里。

票数 4
EN

Stack Overflow用户

发布于 2013-11-09 23:13:08

不如做这样的事:

代码语言:javascript
复制
dogface@computer ~
$ cat oneplusone
1+1
quit

dogface@computer ~
$ python3
Python 3.2.3 (default, Jul 23 2012, 16:48:24)
[GCC 4.5.3] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.call(["bc", "-q", "oneplusone"])
2
0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19884168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档