Python を使用したログ ファイルの追跡
多くの場合、ログ ファイルを追跡したり、追加された新しいコンテンツを表示するためにログ ファイルを受動的に監視したりすることが必要になります。 。これは、Python でいくつかの方法で実現できます。
ノンブロッキング
このアプローチでは、サブプロセスを使用してモジュールを選択できます。
import time import subprocess import 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)
このコードは、指定されたファイルに対して tail -F を実行するサブプロセスを開き、その出力をポーリングして新しいデータを取得し、利用可能な場合はそれを出力します。このアプローチはメイン プログラムをブロックしません。
ブロック
より単純なブロック アプローチは、サブプロセス モジュールのみを使用して使用できます。
import subprocess f = subprocess.Popen(['tail', '-F', filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) while True: line = f.stdout.readline() print(line)
このコードは、追加された新しい行も出力しますが、末尾のプログラムが閉じられるまでブロックされます。
以上がPython でログ ファイルを追跡する方法: ブロッキングと非ブロッキング?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。