实时检查文本追加的新内容
#!/usr/bin/env python3#coding:utf-8
import threading
import os
from time import sleep
def writefile(file):
os.system('for /l %i in (1,1,20) do (@timeout /t 1 >nul&echo 正在写入新的一行:%i >> '+ file + ')') #调用批处理写入文件
def readfile(filestream):
filestream.seek(0,2) #移到文件末尾
while True:
line = filestream.readline()
if line:
yield line
else:
sleep(0.5)
def threa(f):
count = 1
with open(f) as fs:
for i in readfile(fs):
print('\n文件写入了新的内容:',i)
if count == 20:
os.system('taskkill /f /pid ' + str(os.getpid()))
count += 1
f = r'd:\test.txt'
if not os.path.exists(f): #文件不存在,创建空文件
with open(f, 'w') as f:
pass
th = []
th.append(threading.Thread(target = writefile, args = (f,)))
th.append(threading.Thread(target = threa, args = (f,)))
for i in range(len(th)):
th.start()
for i in range(len(th)):
th.join()
文件写入了新的内容: 正在写入新的一行:18
D:\GIN\py>()
文件写入了新的内容: 正在写入新的一行:19
文件写入了新的内容: 正在写入新的一行:20
成功: 已终止 PID 为 7924 的进程。
请按任意键继续. . . 本帖最后由 赚小钱 于 2020-6-2 18:48 编辑
很有想法,不过,是 fsnotify 不好用吗 赚小钱 发表于 2020-6-2 18:45
很有想法,不过,是 fsnotify 不好用吗
不会。感觉要学的东西好多啊! 每次看楼主的代码都觉得有点新奇{:10_250:}
页:
[1]