日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 多進程和協程配合使用寫入數據

瀏覽:18日期:2022-07-06 17:10:04

一、需求分析

有一批key已經寫入到3個txt文件中,每一個txt文件有30萬行記錄。現在需要讀取這些txt文件,判斷key是否在數據倉庫中。(redis或者mysql)

為空的記錄,需要寫入到日志文件中!

任務分工

1. 使用多進程技術,每一個進程讀取一個txt文件

2. 使用協程技術,批量讀取txt文件記錄。比如一次性讀取 2000條記錄

注意:打開文件操作,最好在一個進程中,重復打開文件,會造成系統資源浪費!

二、完整代碼

#!/usr/bin/env python3# coding: utf-8'''多線程和協程配合使用示例'''import osimport timefrom gevent import monkey;monkey.patch_all()from gevent.pool import Poolfrom functools import partialfrom multiprocessing import ProcessCOROUTINE_NUMBER = 2000 # 協程池數量pool = Pool(COROUTINE_NUMBER) # 使用協程池# 模擬數據倉庫,測試數據data_dict = {'1':'x1','3':'x3','5':'x5','7':'x7','9':'x9'}class TestProgram(object): # 測試程序 def __init__(self): self.BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 項目根目錄 def write_log(self,number, content, colour=’white’, skip=False): ''' 寫入日志文件 :param content: 寫入內容 :param colour: 顏色 :param skip: 是否跳過打印時間 :return: ''' # 顏色代碼 colour_dict = { ’red’: 31, # 紅色 ’green’: 32, # 綠色 ’yellow’: 33, # 黃色 ’blue’: 34, # 藍色 ’purple_red’: 35, # 紫紅色 ’bluish_blue’: 36, # 淺藍色 ’white’: 37, # 白色 } choice = colour_dict.get(colour) # 選擇顏色 path = os.path.join(self.BASE_DIR, 'output_%s.log' % number) # 日志文件 with open(path, mode=’a+’, encoding=’utf-8’) as f: if skip is False: # 不跳過打印時間時 content = time.strftime(’%Y-%m-%d %H:%M:%S’) + ’ ’ + content info = '033[1;{};1m{}033[0m'.format(choice, content) print(info) f.write(content + 'n') def has_null(self, key, number): ''' 輸出key :param key: 鍵值 :param number: 文件標記 :return: bool ''' key = key.strip() if not data_dict.get(key): self.write_log(number,'錯誤,{} 記錄為空'.format(key),'red') return False print(key) return True def read_file(self, number): ''' 讀取文件 :param number: 文件標記 :return: ''' file_name = os.path.join(self.BASE_DIR, 'data', '%s.txt' % number) # print(file_name) self.write_log(number, '開始讀取文件 {}'.format(file_name),'green') with open(file_name, encoding=’utf-8’) as f: # 使用協程池,執行任務。語法: pool.map(func,iterator) # partial使用偏函數傳遞參數 # 注意:has_null第一個參數,必須是迭代器遍歷的值 pool.map(partial(self.has_null, number=number), f) self.write_log(number, '結束文件讀取 {} 完成'.format(file_name),'green') return True def run(self, number): ''' 讀取指定的文件,判斷每一個key是否為空 :param number: :return: ''' startime = time.time() # 開始時間 # 清空日志 path = os.path.join(self.BASE_DIR, 'output_%s.log' % number) # 日志文件 with open(path, mode=’w’) as f: pass self.read_file(number) endtime = time.time() take_time = endtime - startime if take_time < 1: # 判斷不足1秒時 take_time = 1 # 設置為1秒 # 計算花費時間 m, s = divmod(take_time, 60) h, m = divmod(m, 60) self.write_log(number, '%s.txt 花費時間 %02d:%02d:%02d' % (number,h, m, s),'green') def main(self): ''' 使用多線程執行程序 :return: ''' # 文件標記列表 file_list = ['7001', '7002', '7003'] p_lst = [] # 線程列表 for i in file_list: # self.run(i) p = Process(target=self.run, args=(i,)) # 子進程調用函數 p.start() # 啟動子進程 p_lst.append(p) # 將所有進程寫入列表中 for p in p_lst: p.join() # 檢測p是否結束,如果沒有結束就阻塞直到結束,否則不阻塞TestProgram().main() # 啟動主程序,它會開啟3個進程。

執行輸出

python 多進程和協程配合使用寫入數據

以上就是python 多進程和協程配合使用寫入數據的詳細內容,更多關于python 多進程和協程的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩极品在线观看| 综合一区二区三区| 国产毛片久久久| 日本а中文在线天堂| 91亚洲无吗| 国产精品日本| 久久精品国产www456c0m| 国产精品宾馆| 国产激情综合| 亚洲色诱最新| 国产午夜一区| 亚洲免费播放| 精品午夜av| 亚洲精品大全| 欧美一区自拍| 国产麻豆一区| 日韩国产一二三区| 亚洲a级精品| 日韩高清在线不卡| 日本不卡高清视频| 中文字幕免费精品| 亚洲乱码久久| 日韩超碰人人爽人人做人人添| 99在线观看免费视频精品观看| 欧美亚洲精品在线| 亚洲一区日本| 欧美专区18| 国产一区亚洲| 欧美男人天堂| 精品国产鲁一鲁****| 综合精品一区| 午夜一级在线看亚洲| 亚洲第一精品影视| 日韩免费小视频| 国产在线日韩精品| 久久精品亚洲| 精品日产乱码久久久久久仙踪林| 日韩欧美中文字幕电影| 免费在线观看成人| 久久亚洲色图| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久精品超碰| 日韩中文字幕| 91亚洲国产高清| 99久久九九| 中文字幕中文字幕精品| 久久精品系列| 久久福利一区| 樱桃视频成人在线观看| 色狠狠一区二区三区| 久久uomeier| 日韩精品中文字幕一区二区| 国产在线观看www| 免费视频一区二区| 精品一区二区三区免费看| 欧美.日韩.国产.一区.二区| 欧美精品国产白浆久久久久| 久久国产日韩| 日韩激情视频网站| 成人免费电影网址| 青青国产91久久久久久| 久久久久久黄| 久久福利在线| 美女毛片一区二区三区四区最新中文字幕亚洲 | 亚洲深夜av| 日韩中文字幕1| 中文字幕av亚洲精品一部二部 | 国产视频网站一区二区三区| 蜜桃精品视频| 亚洲婷婷免费| 日韩欧美中文在线观看| 国产精品久久久亚洲一区| 国产成人精品一区二区免费看京| 日韩久久视频| 亚洲青青久久| 国产在线日韩精品| 好吊一区二区三区| 国产区精品区| 亚洲女同一区| 99热免费精品| 亚洲综合不卡| 日本aⅴ精品一区二区三区| 国产亚洲福利| 精品欧美久久| 亚洲二区免费| 婷婷激情图片久久| 亚洲一级影院| 欧美日韩国产免费观看视频| 日韩二区三区在线观看| 99免费精品| 国产精品久久久久久模特| 999久久久精品国产| 国产日韩欧美三级| 影音先锋久久| 久久免费视频66| 狠狠操综合网| 国产香蕉精品| 久久先锋影音| 国产网站在线| 蜜臀国产一区| 九九九精品视频| 精品一区二区三区免费看 | 婷婷激情综合| 国产一区国产二区国产三区| 亚洲三级网站| 亚洲欧洲日本mm| 高清在线一区| 欧美在线资源| 亚洲另类黄色| 精品国产成人| 免费观看日韩电影| 黄色亚洲大片免费在线观看| 日韩欧美一区二区三区在线视频 | 免费日本视频一区| 99成人在线视频| 国产精品色网| 亚洲日产国产精品| 国产亚洲观看| 欧美www视频在线观看| 91精品国产自产观看在线 | 国产欧美在线观看免费| 日韩精品乱码av一区二区| 国产精品免费大片| 青草综合视频| 国产一区二区三区四区| 国产99在线| 亚洲少妇自拍| 国产情侣一区| 久久青青视频| 日韩视频二区| 日韩一区二区三区高清在线观看| 国产精品白浆| 久久久久国产| 视频精品一区| 国产精品久久久久蜜臀| 婷婷综合社区| 日本强好片久久久久久aaa| 久久一区视频| 亚洲制服少妇| 欧美亚洲国产激情| 亚洲精品福利| 成人国产精品一区二区网站| 日韩精品1区| 亚洲综合精品四区| 国产欧美高清视频在线| 国产一区二区三区黄网站| 99精品电影| 日韩av资源网| 91精品韩国| 日韩动漫一区| 久久精品91| 欧美日韩精品一区二区三区在线观看| 色乱码一区二区三区网站| 亚洲激情偷拍| 国产精品成人自拍| 国产农村妇女精品一区二区| 亚洲欧洲日本mm| 日本中文字幕不卡| 在线国产一区| 国产不卡人人| 国产情侣一区在线| 麻豆91精品| 久久精品电影| 久久免费影院| 欧美日本不卡| 亚洲免费成人av在线| 激情视频一区二区三区| 国际精品欧美精品| 青草av.久久免费一区| 99日韩精品| 99免费精品| av最新在线| 精品日韩在线| 欧美1区2区3| 日韩福利一区| 久久久夜夜夜| 18国产精品| 亚洲一区二区小说| 欧美高清不卡| 成人啊v在线| 福利一区和二区| 免费一区二区三区在线视频| 亚洲精品女人| 丝袜国产日韩另类美女| 欧美日韩国产传媒| 日韩精品欧美| 黄在线观看免费网站ktv| 欧美成人精品一级| 国产欧美久久一区二区三区| 日韩欧美高清一区二区三区| 蜜臀va亚洲va欧美va天堂| 欧美性感美女一区二区| 欧美香蕉视频| 综合日韩av| 精品国产不卡一区二区| 精品一区视频| 麻豆精品国产91久久久久久| 欧美国产亚洲精品| 国产精品超碰| 久久久国产精品网站|