欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 多線程搜索txt文件的內(nèi)容,并寫入搜到的內(nèi)容(Lock)方法

 更新時(shí)間:2019年08月23日 16:44:57   作者:houyanhua1  
今天小編就為大家分享一篇Python 多線程搜索txt文件的內(nèi)容,并寫入搜到的內(nèi)容(Lock)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

廢話不多說,直接上代碼吧!

import threading
import os
 
class Find(threading.Thread): #搜索數(shù)據(jù)的線程類
 def __init__(self,datalist,startIndex,endIndex,searchstr,savefile): #datalist要搜索的內(nèi)容列表,startIndex列表搜索范圍的開始下標(biāo),searchstr要搜索的內(nèi)容
  threading.Thread.__init__(self)
  self.datalist=datalist #要搜索的數(shù)據(jù)的內(nèi)存地址
  self.startIndex=startIndex #開始的索引
  self.endIndex=endIndex #結(jié)束的索引
  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: #獲取鎖(自動(dòng)釋放鎖)
 		for line in self.findlist:
 			self.savefile.write(line.encode("gbk"))
  	
 
mutex=threading.Lock() #創(chuàng)建一個(gè)鎖
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個(gè)線程
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)容(Lock)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pytorch 轉(zhuǎn)換矩陣的維數(shù)位置方法

    pytorch 轉(zhuǎn)換矩陣的維數(shù)位置方法

    今天小編就為大家分享一篇pytorch 轉(zhuǎn)換矩陣的維數(shù)位置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python如何生成樹形圖案

    Python如何生成樹形圖案

    這篇文章主要為大家詳細(xì)介紹了Python如何生成樹形圖案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 如何寫好?Python?的?Lambda?函數(shù)

    如何寫好?Python?的?Lambda?函數(shù)

    這篇文章主要介紹了如何寫好?Python?的?Lambda?函數(shù),Lambda?函數(shù)是?Python?中的匿名函數(shù),下面文章通過介紹Lambda?函數(shù)的相關(guān)內(nèi)容展開文章主題,需要的小伙伴可以參考一下
    2022-03-03
  • 基于PyQt5自制簡(jiǎn)單的文件內(nèi)容檢索小工具

    基于PyQt5自制簡(jiǎn)單的文件內(nèi)容檢索小工具

    這篇文章主要為大家詳細(xì)介紹了如何基于PyQt5自制一個(gè)簡(jiǎn)單的文件內(nèi)容檢索小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-05-05
  • Python中super函數(shù)用法實(shí)例分析

    Python中super函數(shù)用法實(shí)例分析

    這篇文章主要介紹了Python中super函數(shù)用法,結(jié)合實(shí)例形式詳細(xì)分析了Python中super函數(shù)的功能、調(diào)用父類相關(guān)原理、操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-03-03
  • Python中字典(dict)合并的四種方法總結(jié)

    Python中字典(dict)合并的四種方法總結(jié)

    在Python中將字典(dict)進(jìn)行合并操作,是一個(gè)比較常見的問題。下面這篇文章主要給大家總結(jié)介紹了關(guān)于Python中字典(dict)合并的四種方法,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • 利用python+ffmpeg合并B站視頻及格式轉(zhuǎn)換的實(shí)例代碼

    利用python+ffmpeg合并B站視頻及格式轉(zhuǎn)換的實(shí)例代碼

    這篇文章主要介紹了利用python+ffmpeg合并B站視頻及格式轉(zhuǎn)換的實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 詳解pygame中Rect對(duì)象

    詳解pygame中Rect對(duì)象

    Rect是pygame中的一個(gè)創(chuàng)建矩形的對(duì)象,它包含一些屬性主要是兩塊:坐標(biāo)和長(zhǎng)寬,Pygame?通過?Rect?對(duì)象存儲(chǔ)和操作矩形區(qū)域,這篇文章主要介紹了pygame中Rect對(duì)象,需要的朋友可以參考下
    2022-07-07
  • 使用Python實(shí)現(xiàn)將數(shù)據(jù)寫入Excel工作表

    使用Python實(shí)現(xiàn)將數(shù)據(jù)寫入Excel工作表

    在數(shù)據(jù)處理和報(bào)告生成等工作中,Excel?表格是一種常見且廣泛使用的工具,本文中將介紹如何使用?Python?寫入數(shù)據(jù)到?Excel?表格,并提供更高效和準(zhǔn)確的?Excel?表格數(shù)據(jù)寫入方案,需要的可以參考下
    2024-01-01
  • 詳解Python中映射類型的內(nèi)建函數(shù)和工廠函數(shù)

    詳解Python中映射類型的內(nèi)建函數(shù)和工廠函數(shù)

    這篇文章主要介紹了詳解Python中映射類型的內(nèi)建函數(shù)和工廠函數(shù),目前Python的內(nèi)建映射類型只有字典一種,需要的朋友可以參考下
    2015-08-08

最新評(píng)論