我在 python 中跟踪一个文件以进行任何更改,但它没有检测到对该文件的更改
这是我的脚本:
def tail(file, delay=0.5):
f = open(file, 'r')
f.seek(0, 2)
while True:
line = f.readline()
print 'line: ' + line
if not line:
time.sleep(delay)
else:
print 'line found!'
当我打开文件并向其中添加一些行时,该脚本不会拾取它。我在linux上做这个。
Here is my script:
def tail(file, delay=0.5):
f = open(file, 'r')
f.seek(0, 2)
while True:
line = f.readline()
print 'line: ' + line
if not line:
time.sleep(delay)
else:
print 'line found!'
When i open the file and add some lines to it, this script is not picking it up. I am doing this on linux.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
open('filename', 'a')
而不是open('filename', 'r')
向文件添加行......我认为你实际上想要附加到文件而不是读取它。use
open('filename', 'a')
instead ofopen('filename', 'r')
for adding lines to the file ... I think you actually want to append to the file rather than reading it.代码看起来不错,因此可能存在缓冲问题。尝试使用 f.read(100) 而不是 readline,以便您读取可用的任何内容,而不是搜索行结尾。
The code looks fine so there is likely a buffering issue. Try using f.read(100) instead of readline so that you read whatever is available rather than searching for line endings.