import threading
import os
class Find(threading.Thread): #搜索数据的线程类
def __init__(self,datalist,startIndex,endIndex,searchstr,savefile): #datalist要搜索的内容列表,startIndex列表搜索范围的开始下标,searchstr要搜索的内容
threading.Thread.__init__(self)
self.datalist=datalist #要搜索的数据的内存地址
self.startIndex=startIndex #开始的索引
self.endIndex=endIndex #结束的索引
self.seachstr=searchstr #需要搜索的数据
self.savefile=savefile
def run(self):
self.findlist=[]
for i in range(self.startIndex,self.endIndex):
line=self.datalist[i].decode("gbk","ignore") #读取一行
if line.find(self.seachstr)!=-1:
print(self.getName(),line,end="") #搜索数据
self.findlist.append(line)
global mutex #多线程共享全局变量(全局锁)
with mutex: #获取锁(自动释放锁)
for line in self.findlist:
self.savefile.write(line.encode("gbk"))
mut
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)
最新推荐文章于 2023-06-26 23:41:54 发布
这个博客介绍了一个使用Python多线程搜索txt文件内容的实现方式。通过创建线程类`Find`,每个线程负责处理数据列表的一部分,并在找到匹配搜索字符串的行时写入到指定文件。全局锁`mutex`用于确保多线程安全地写入结果到文件。用户输入要查询的数据,程序将结果保存到`c:\zhaodao.txt`。
摘要由CSDN通过智能技术生成