Python的解释器默认启用输出缓冲sys.stdout吗?
如果答案是肯定的,那么禁用它的所有方法是什么?
建议到目前为止:
-u命令行开关sys.stdout在每次写入后刷新的对象PYTHONUNBUFFEREDenv varsys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)是否有任何其他方式来设置一些全局标志sys/ sys.stdout程序执行过程中?
我有两个以这种方式使用的程序:
$ c_program | python_program.py
Run Code Online (Sandbox Code Playgroud)
c_program使用printf()和python_program.py读取打印的东西sys.stdin.readline()
我想立即打印python_program.py进程c_program的输出,以便它可以打印自己的当前输出.不幸的是,python_program.py仅在c_program结束后获取其输入.
我怎么解决这个问题?
我需要在文件上输出命令的输出。假设我的命令是zip -r zip.zip directory,我需要将(这些选项中的任何一个都可以)附加/写入文件(假设out.txt)。我zip zip.zip directory | tee -a out.txt到目前为止,但它似乎不起作用,它只是在命令结束时写入整个输出......我怎样才能做到这一点?
谢谢 ;)