Python使用多进程统计文本数据

有一文本文件,要求获取文档中“is”所在的行

思路:

创建两个进程,一个负责读取文本内容,遍历文本,发现“is”就将当前行存入队列,另一个进程实时从队列中获取数据,打印并显示

实现:

from multiprocessing import Process, Queue
import time

def set_data(q):
    file = open("english.txt", encoding='UTF-8')
    count = 0
    for line in file:
        count += 1
        if "is" in line:
            q.put(count)
            time.sleep(1)

def get_data(q):
    while True:
        value = q.get(True)
        print("含有is的行:", value)

if __name__ == '__main__':
    queue = Queue()
    process1 = Process(target=set_data, args=(queue, ))
    process2 = Process(target=get_data, args=(queue,))
    process1.start()
    process2.start()
    process1.join()

含有is的行: 2
含有is的行: 6
含有is的行: 7
含有is的行: 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值