真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python中怎么利用多線程搜索txt文件內(nèi)容-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關Python 中怎么利用多線程搜索txt文件內(nèi)容,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

為柳城等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及柳城網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站設計、成都網(wǎng)站建設、柳城網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
import threading
import os
 
class Find(threading.Thread): #搜索數(shù)據(jù)的線程類
 def __init__(self,datalist,startIndex,endIndex,searchstr,savefile): #datalist要搜索的內(nèi)容列表,startIndex列表搜索范圍的開始下標,searchstr要搜索的內(nèi)容
  threading.Thread.__init__(self)
  self.datalist=datalist #要搜索的數(shù)據(jù)的內(nèi)存地址
  self.startIndex=startIndex #開始的索引
  self.endIndex=endIndex #結束的索引
  self.seachstr=searchstr #需要搜索的數(shù)據(jù)
  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="") #搜索數(shù)據(jù)
  		self.findlist.append(line)
 	global mutex #多線程共享全局變量(全局鎖)
 	with mutex: #獲取鎖(自動釋放鎖)
 		for line in self.findlist:
 			self.savefile.write(line.encode("gbk"))
  	
 
mutex=threading.Lock() #創(chuàng)建一個鎖
savefile=open("c:\\zhaodao.txt","wb") #搜索到的內(nèi)容寫入該文件
 
path = "C:\\data1.txt" #要搜索的文件
file = open(path, "rb")
datalist = file.readlines() # 全部讀入內(nèi)存
lines=len(datalist) #所有的行數(shù)
searchstr=input("輸入要查詢的數(shù)據(jù)")
N=10 #開啟10個線程
threadlist=[] #線程列表
# 97 9 0-1000000 1000000-2000000 2000000-3000000
for i in range(0,N-1): #0,1,2,3,4,5,6,7,8 數(shù)據(jù)切割
 mythd= Find(datalist,i*(lines//(N-1)) , (i+1)*(lines//(N-1)),searchstr,savefile) # //表示整除
 mythd.start()
 threadlist.append(mythd) #添加到線程列表
 
#97 = 97//10*10=90
mylastthd= Find(datalist,lines//(N-1)*(N-1),lines,searchstr,savefile) #最后的線程搜索剩下的尾數(shù)
mylastthd.start()
threadlist.append(mylastthd) #添加到線程列表
 
for thd in threadlist: #遍歷線程列表
 thd.join()
print("finish")

關于Python 中怎么利用多線程搜索txt文件內(nèi)容就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


文章標題:Python中怎么利用多線程搜索txt文件內(nèi)容-創(chuàng)新互聯(lián)
地址分享:http://weahome.cn/article/pgsos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部