第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Python中跟蹤日志文件?

如何在Python中跟蹤日志文件?

素胚勾勒不出你 2019-07-15 15:32:50
如何在Python中跟蹤日志文件?我希望在Python中可以在沒有阻塞或鎖定的情況下使用tail-F或類似的輸出。我找到了一些很老的代碼這里,但我想現(xiàn)在肯定有更好的方法或圖書館來做同樣的事情了。有人聽說過嗎?理想情況下,我會有tail.getNewData()每次我想要更多數(shù)據(jù)的時候我都可以打電話給你。
查看完整描述

3 回答

?
呼喚遠方

TA貢獻1856條經(jīng)驗 獲得超11個贊

非阻塞

如果您在Linux上(因為windows不支持調(diào)用SELECT文件),您可以使用子進程模塊和SELECT模塊。

import timeimport subprocessimport select

f = subprocess.Popen(['tail','-F',filename],\
        stdout=subprocess.PIPE,stderr=subprocess.PIPE)p = select.poll()p.register(f.stdout)while True:
    if p.poll(1):
        print f.stdout.readline()
    time.sleep(1)

這將輪詢輸出管道中的新數(shù)據(jù),并在可用時將其打印出來。通常time.sleep(1)print f.stdout.readline()將被有用的代碼所取代。

阻塞

您可以使用子流程模塊,而無需額外的SELECT模塊調(diào)用。

import subprocess
f = subprocess.Popen(['tail','-F',filename],\
        stdout=subprocess.PIPE,stderr=subprocess.PIPE)while True:
    line = f.stdout.readline()
    print line

這也會在添加新行時打印出新行,但是它將阻塞直到尾程序關(guān)閉,可能使用f.kill().


查看完整回答
反對 回復 2019-07-15
  • 3 回答
  • 0 關(guān)注
  • 609 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號