绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
python_print函数的flush参数
2019-09-10 16:24:18

今天发现了一个奇怪的现象,直接上代码

import sys
from colorama import Fore, Back, Style 

def print_example():
    print(Fore.RED+ "1. This is the first sentence")
     long_str=' Blowing in the wind'
    print(Fore.WHITE + '2. long_str =', end='')
    #print('2. long_str= ', end='')
    print( long_str,file=sys.stderr)
    print(Fore.CYAN + "3. Do they printed in right order")

print_example()

打印出来的结果并不是我设想的顺序

1. This is the first sentence
 Blowing in the wind
2. long_str =3. Do they printed in right order

为什么stderr和stdout会打印到一起呢? 我的猜想也许跟stdout, stderr的缓冲机制有关 后来发现python 3.3 后print可以加flush参数, 这样就能得到我想要的打印次序

import sys 
    from colorama import Fore, Back, Style
    def print_example(): 
        print(Fore.RED+ "1. This is the first sentence") 
         long_str=' Blowing in the wind' 
        print(Fore.WHITE + '2. long_str =', end='',flush=True) 
        #print('2. long_str= ', end='') 
        print( long_str,file=sys.stderr) 
        print(Fore.CYAN + "3. Do they printed in right order") 
    print_example() 
    打印出来如下
    1. This is the first sentence
    2. long_str = Blowing in the wind
    3. Do they printed in right order


分享好友

分享这个小栈给你的朋友们,一起进步吧。

应用开发
创建时间:2020-06-17 15:31:04
应用软件开发是指使用程序语言C#、java、 c++、vb等语言编写,主要是用于商业、生活应用的软件的开发。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~