print "first" import os os.system("echo second")
在Linux命令行我执行
python test.py
它返回:
first second
然后我执行
将命令输出保存到variables
将存档解压缩到现有的目录结构
什么是Windows命令行参数编码?
如何用tar压缩目录时排除大文件
python test.py > test.out; cat test.out
哪个返回
second first
如何redirect输出使得os.system调用在打印语句之前打印?
Linux的行为在Windowsshell – 运行ruby没有“ruby”追加到命令?
Windows环境variables中的控制台宽度
C#程序将不会从Java执行
Windows命令行pipe道一个stringgroovy
我如何grep整个,可能包装,代码行?
当你输出到管道时,Python缓冲你的输出写入到sys.stdout ,并在flush之后或溢出之后,或者在关闭之后(程序退出时)输出。 虽然它会缓冲打印调用,系统调用直接输出到标准输出,它们的输出不会被缓冲。 这就是为什么你看到这样的优先顺序。 为了避免这种情况,请使用python -u :
python -u test.py > test.out; cat test.out
在这里看到更多信息。
编辑 :解释什么时候缓冲区将被刷新。
#!/usr/bin/env python import sys print "first" sys.stdout.flush() import os os.system("echo second")
当python脚本的输出是一个tty时,它的输出是行缓冲的。 当输出是常规文件时,输出是块缓冲。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。