最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中stdout輸出不緩存的設(shè)置方法

 更新時間:2014年05月29日 10:56:01   作者:  
這篇文章主要介紹了python中stdout輸出不緩存的設(shè)置方法,這個方法只在比較特殊的環(huán)境中使用,需要的朋友可以參考下

考慮以下python程序:

復(fù)制代碼 代碼如下:

#!/usr/bin/env python

import sys

sys.stdout.write("stdout1 ")
sys.stderr.write("stderr1 ")
sys.stdout.write("stdout2 ")
sys.stderr.write("stderr2 ")

其中的sys.stdout.write也可以換成print。
運行這程序,你覺得會輸出什么?試驗一下,就會發(fā)現(xiàn),其實輸出并不是
復(fù)制代碼 代碼如下:

stdout1 stderr1  stdout2 stderr2

而是:
復(fù)制代碼 代碼如下:

stderr1 stderr2 stdout1  stdout2

究其原因,是因為緩存:雖然stderr和stdout默認都是指向屏幕的,但是stderr是無緩存的,程序往stderr輸出一個字符,就會在屏幕上顯示一個;而stdout是有緩存的,只有遇到換行或者積累到一定的大小,才會顯示出來。這就是為什么上面的會顯示兩個stderr的原因了。
然而,有時候,你可能還是希望stdout的行為和stderr一樣,能不能實現(xiàn)呢?當然是可以的,而且對于python,實現(xiàn)起來還特別方便,以下是兩個方法:
復(fù)制代碼 代碼如下:

python -u stderr_stdout.py
PYTHONUNBUFFERED=1 python stderr_stdout.py

第一種方法是給python指定 -u 參數(shù),第二種方法是在python運行時,指定 PYTHONUNBUFFERED 環(huán)境變量,這兩種方法其實是等效的。
當然,也可以在程序的第一行指定 #!/usr/bin/python -u 然后程序加可執(zhí)行權(quán)限來運行,或者把 export PYTHONUNBUFFERED=1 寫到 .bashrc 里去。


附:stackoverflow上也有同學遇到類似問題,可以參考一下

地址:http://stackoverflow.com/questions/107705/python-output-buffering

被采納的代碼:

復(fù)制代碼 代碼如下:

class Unbuffered(object):
   def __init__(self, stream):
       self.stream = stream
   def write(self, data):
       self.stream.write(data)
       self.stream.flush()
   def __getattr__(self, attr):
       return getattr(self.stream, attr)

import sys
sys.stdout = Unbuffered(sys.stdout)
print 'Hello'

相關(guān)文章

  • Python實現(xiàn)提取XML內(nèi)容并保存到Excel中的方法

    Python實現(xiàn)提取XML內(nèi)容并保存到Excel中的方法

    這篇文章主要介紹了Python實現(xiàn)提取XML內(nèi)容并保存到Excel中的方法,涉及Python針對xml文件的讀取、解析以及Excel文件的寫入、保存等相關(guān)操作技巧,需要的朋友可以參考下
    2018-09-09
  • PyCharm運行bash腳本的實現(xiàn)

    PyCharm運行bash腳本的實現(xiàn)

    本文主要介紹了PyCharm運行bash腳本的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • Python解決拋小球問題 求小球下落經(jīng)歷的距離之和示例

    Python解決拋小球問題 求小球下落經(jīng)歷的距離之和示例

    這篇文章主要介紹了Python解決拋小球問題 求小球下落經(jīng)歷的距離之和,涉及Python基于遞歸的數(shù)值計算相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • python實現(xiàn)學生信息管理系統(tǒng)(面向?qū)ο?

    python實現(xiàn)學生信息管理系統(tǒng)(面向?qū)ο?

    這篇文章主要介紹了python實現(xiàn)面向?qū)ο蟀鎸W生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • python使用rabbitmq實現(xiàn)網(wǎng)絡(luò)爬蟲示例

    python使用rabbitmq實現(xiàn)網(wǎng)絡(luò)爬蟲示例

    這篇文章主要介紹了python使用RabbitMQ實現(xiàn)網(wǎng)絡(luò)爬蟲的示例,需要的朋友可以參考下
    2014-02-02
  • 部署Django到阿里云服務(wù)器教程示例

    部署Django到阿里云服務(wù)器教程示例

    這篇文章主要介紹了部署Django到阿里云服務(wù)器教程示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • python局部賦值的規(guī)則

    python局部賦值的規(guī)則

    Python提出如下假設(shè):如果在函數(shù)體內(nèi)的任何地方對變量賦值,則Python將名稱添加到局部命名空間中。
    2013-03-03
  • Python編程中Python與GIL互斥鎖關(guān)系作用分析

    Python編程中Python與GIL互斥鎖關(guān)系作用分析

    GIL互斥鎖用來保護Python世界里的對象,防止同一時刻多個線程執(zhí)行Python字節(jié)碼,確保線程安全,但也導(dǎo)致Python線程無法利用多核CPU優(yōu)勢,本文來探討Python將來是否有可能去除GIL
    2021-09-09
  • 詳解Python正則表達式re模塊

    詳解Python正則表達式re模塊

    這篇文章主要介紹了Python正則表達式re模塊,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Python實現(xiàn)自動打開電腦應(yīng)用的示例代碼

    Python實現(xiàn)自動打開電腦應(yīng)用的示例代碼

    這篇文章主要介紹了Python實現(xiàn)自動打開電腦應(yīng)用的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04

最新評論

黑龙江省| 富宁县| 平湖市| 石棉县| 西吉县| 出国| 汉沽区| 冷水江市| 乡城县| 邓州市| 西安市| 平顶山市| 腾冲县| 内乡县| 新巴尔虎左旗| 铜川市| 江都市| 大埔县| 常州市| 河南省| 泽州县| 兴文县| 麻栗坡县| 富裕县| 望城县| 桐梓县| 黄大仙区| 娄底市| 荣昌县| 聊城市| 小金县| 临沭县| 上饶县| 婺源县| 海伦市| 永济市| 永靖县| 海晏县| 喀喇| 延吉市| 巴彦淖尔市|