首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pylab输出延迟标准输出

Pylab输出延迟标准输出
EN

Stack Overflow用户
提问于 2014-03-11 09:46:52
回答 1查看 97关注 0票数 0

有一种我不明白的侏儒的行为。我编写了一个计算一些数字并将它们写入标准输出的程序。之后,show()在同一个程序中被调用,这给了我一个图形输出。当我写

代码语言:javascript
复制
program.py > tmp_file

它打开图形并将数字写入tmp_file。到现在为止还好。现在,我想做同样的事情,但自动化。但是,如果我写

代码语言:javascript
复制
program.py > tmp_file &

konsole已经为下一个命令做好了准备,但在显示图形之前,tmp_file仍然是空的(尽管program.py中的show()命令遵循print命令,而不是相反)。由于要显示图形需要一段时间,因此不可能为进一步的进程使用tmp_file。例如,

代码语言:javascript
复制
program.py > tmp_file &
cat tmp_file

提供一个空输出,而

代码语言:javascript
复制
program.py > tmp_file
cat tmp_file

给出预期的结果值。

我做错了什么?这个问题有解决办法吗?

我使用的是suse标准python安装2.7.3。

另一个我找不到答案的问题:是否可以将show()输出写到stdout?比如program.py > graph.xxx?

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-11 12:31:41

关于您的第二个问题,program.py > tmp_file使用

代码语言:javascript
复制
import sys
import pylab

pylab.plot([2,4,6,1,3,5])
pylab.savefig(sys.stdout, format='png')

您仍然必须显式地指定格式: matplotlib不可能读取文件名并从中推断格式。

但是最好将输出文件名设置为参数;然后matplotlib可以使用实际的文件名并自动确定格式:

代码语言:javascript
复制
import sys
import pylab

pylab.plot([2,4,6,1,3,5])
pylab.savefig(sys.argv[1])

program.py tmp_file.png的形式运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22321927

复制
相关文章

相似问题

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