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

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

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

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

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

3 回答

?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗 獲得超4個贊

非阻塞

如果您在Linux上(因為windows不支持調(diào)用SELECT文件),您可以使用子進(jìn)程模塊和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().



查看完整回答
反對 回復(fù) 2019-10-22
  • 3 回答
  • 0 關(guān)注
  • 306 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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