gpt4 book ai didi

python无限循环从其他文本文件获取数据时速度变慢

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:02 24 4
gpt4 key购买 nike

我是Python新手,实际上我尝试了一个简单的程序。我正在读取一个文本文件,该文件每次都会从日志中更新数据,因此我只需将更新的数据从该文本文件复制或附加到另一个文本文件并执行一些处理。为此,我使用下面的代码完成了。

with open("Log.txt") as f:
data = f.readlines()
i=len(data)#find length of file
def check(i):
with open("Log.txt") as f2:
count=f2.readlines()
x=len(count)#finds length of file after update
print(x)
j=i
i=x
while(j<x):
with open("Log.txt") as f1:
count=f1.readlines()
msg=count[j]#get updated text
j=j+1
with open('Output1.txt', 'a') as f3:
f3.write(str(msg))#append updated text to file
process()#calling a function which do some process on text file

while True:
check(i)

通过使用上面的代码,我正在获取更新的数据,但问题是它在执行无限循环时速度变慢。意味着最初如果我在 Log.text 文件中有数据,直到中午 12:00,它将附加所有数据,循环后5 分钟后,log.text 文件中的数据将会增加,但在同样的 5 分钟时间后,我将仅将 3 分钟的数据放入输出文件中。它很慢,从文本文件获取数据有很大的延迟。为什么?我如何才能立即将相同的更新文本获取到输出文件中。

最佳答案

尝试以下代码:

def read_and_copy():
with open("/var/log/messages") as input:
with open('/tmp/output', 'a+') as output:
while True:
# read line by line
data = input.readline()
# check if line is not empty
# also if needed - provide necessary checks
if data:
# write to another file
output.write(data)
# Flush the write buffers of the stream if applicable.
# This does nothing for read-only and non-blocking streams.
output.flush()




read_and_copy()

请记住,每次调用 read_and_copy 都会再次读取整个文件并覆盖输出文件。

关于python无限循环从其他文本文件获取数据时速度变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47090687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com