Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法监视正在运行的日志文件_Python_Bash_Unix - Fatal编程技术网

Python 无法监视正在运行的日志文件

Python 无法监视正在运行的日志文件,python,bash,unix,Python,Bash,Unix,我有一个简单的python程序,sample.py: import time n = 1 while True: print 'Testing', n n += 1 time.sleep (1) 当我在bash中将程序作为后台作业运行时: $ python sample.py &> sample.log & 现在查看日志文件: $ watch tail -n5 sample.log 除非程序停止,否则我什么也看不到。此外,如果在任何文本编辑器中

我有一个简单的python程序,sample.py

import time
n = 1
while True:
    print 'Testing', n
    n += 1
    time.sleep (1)
当我在bash中将程序作为后台作业运行时:

$ python sample.py &> sample.log &
现在查看日志文件:

$ watch tail -n5 sample.log
除非程序停止,否则我什么也看不到。此外,如果在任何文本编辑器中查看sample.log文件,则其为空


那么,如何实时查看日志文件中的更改呢?

输出得到缓冲;每次打印后刷新缓冲区,您将看到
watch
命令生成预期的输出

import time
import sys

n = 1
while True:
    print 'Testing', n
    sys.stdout.flush()
    n += 1
    time.sleep (1)

输出得到缓冲;每次打印后刷新缓冲区,您将看到
watch
命令生成预期的输出

import time
import sys

n = 1
while True:
    print 'Testing', n
    sys.stdout.flush()
    n += 1
    time.sleep (1)

尝试只使用
tail-f-n5 sample.log
-f
标志意味着在文件更改时跟踪文件。不幸的是,这不起作用。程序终止后,我似乎可以看到整个sample.log文件。但这不应该是一种行为。无论如何谢谢你!尝试只使用
tail-f-n5 sample.log
-f
标志意味着在文件更改时跟踪文件。不幸的是,这不起作用。程序终止后,我似乎可以看到整个sample.log文件。但这不应该是一种行为。无论如何谢谢你!