web-dev-qa-db-ja.com

Linux TシャツはPythonで動作しませんか?

python無限ループを使用してWebサーバーと通信するスクリプトを作成しました。すべての通信データをファイルに記録し、同時に端末からも監視したいので、teeコマンドを使用しました。このような。

python client.py | tee logfile

しかし、端末からもログファイルからも何も得られませんでした。 pythonスクリプトは正常に動作しています。ここで何が起きているのでしょうか。何か不足していますか?

いくつかのアドバイスをいただければ幸いです。前もって感謝します。

82
daehee

man pythonから:

   -u     Force stdin, stdout and stderr to  be  totally  unbuffered.   On  systems
          where it matters, also put stdin, stdout and stderr in binary mode.  Note
          that there is internal buffering in xreadlines(), readlines()  and  file-
          object  iterators  ("for  line  in sys.stdin") which is not influenced by
          this option.  To work around this, you will want to use  "sys.stdin.read‐
          line()" inside a "while 1:" loop.

だからあなたができることは:

/usr/bin/python -u client.py >> logfile 2>&1

またはteeを使用:

python -u client.py | tee logfile
150
Vor