Python实现模拟分割大文件及多线程处理的方法
作者:Jredreamer 发布时间:2021-08-26 10:55:12
标签:Python,文件,多线程
本文实例讲述了Python实现模拟分割大文件及多线程处理的方法。分享给大家供大家参考,具体如下:
#!/usr/bin/env python
#--*-- coding:utf-8 --*--
from random import randint
from time import ctime
from time import sleep
import queue
import threading
class MyTask(object):
"""具体的任务类"""
def __init__(self, name):
self.name = name
self._work_time = randint(1, 5)
def work(self):
print("Task %s is start : %s, sleep time= %d" % (self.name, ctime(), self._work_time))
sleep(self._work_time)
print("Task %s is end : %s" % (self.name, ctime()))
class MyThread(threading.Thread):
"""多线程的类"""
def __init__(self, my_queue):
self.my_queue = my_queue
super(MyThread, self).__init__()
def run(self):
while True:
if self.my_queue.qsize() > 0:
self.my_queue.get().work()
else:
break
def print_split_line(num=30):
print("*" * num)
if __name__ == "__main__":
print_split_line()
import my_read_file
# 分割文件
sf = my_read_file.SplitFiles(r"F:\multiple_thread_read_file.txt", line_count=300)
file_num = sf.split_file()
queue_length = file_num
my_queue = queue.LifoQueue(queue_length)
threads = []
for i in range(queue_length):
file_name = sf.get_part_file_name(i)
mt = MyTask(file_name)
my_queue.put_nowait(mt)
for i in range(queue_length):
mtd = MyThread(my_queue)
threads.append(mtd)
for i in range(queue_length):
threads[i].start()
for i in range(queue_length):
threads[i].join()
print_split_line()
希望本文所述对大家Python程序设计有所帮助。
来源:http://blog.csdn.net/zhang_red/article/details/9056139
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- aspx: <div id="selDiv" style=" z-index:100; visibili
- 1、网络协议TCP / IP 是设备用于在 Internet 和大多数本地网络上进行通信的一组协议。 TCP 更可靠,具有大量错误检查并需要
- 日常在网站使用过程中经常遇到图形验证,今天准备自己做个图形验证码,这算是个简单的功能,也适合新手练习的,便于自己学习。 主要用到的库--PI
- JavaScript图片水平翻转后垂直翻反转的特效一:<!--把下列代码加到body区域内--><SCRIPT langu
- 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。
- 在 CodeBit.cn 的论坛中,有人问 Javascript 中如何截取小数位并实现四舍五入,这是一个很常用的 js 技术,帖子中也有网
- 去掉html中的table代码 Function OutTable(str) dim a,re&nb
- 学习了一点opencv的知识于是找了个小项目来实践一下。这里先说明一下,我的实现方法不见得是最好的(因为这只是一个用于练习的项目)仅作参考,
- Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:whil
- 以Python 3.x版本为主一、比较运算符比较运算符主要是True和Fals两个值编号比较运算符说明1==等于2!=<>(Py
- PHP 跳转,即重定向浏览器到指定的 URL,是一个很常见的功能。这种功能也有一些细节性的要求,比如等待多少秒以后跳转,用不用JavaScr
- python中字典的key不能是可变类型。字典可存储任意类型对象,其中值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。语法格
- 本文实例讲述了Python求导数的方法。分享给大家供大家参考。具体实现方法如下:def func(coeff): sum=
- 本文实例分析了python动态性强类型用法。分享给大家供大家参考。具体如下:Python变量声明和定义与C#不同,Python在使用变量之前
- 本文实例为大家分享了python实现飞机大战的具体代码,供大家参考,具体内容如下实现的效果如下: 主程序代码如下:import p
- 本文实例讲述了Python使用matplotlib实现基础绘图功能。分享给大家供大家参考,具体如下:一个简单的例子# -*- coding:
- python给数据加上高斯噪声一开始用MATLAB给数据加噪声很简单,就一句话:% 给数据加指定SNR的高斯噪声signal_noise =
- 我就废话不多说了,大家还是直接看代码吧~func main() { var a chan string a =mak
- 我们最终的视图技巧利用了一个高级python技术。 假设你发现自己在各个不同视图里重复了大量代码,就像 这个例子:def my_view1(
- 本文实例讲述了Python高级特性之闭包与装饰器。分享给大家供大家参考,具体如下:闭包1.函数参数:(1)函数名存放的是函数的地址 (2)函