Python实现模拟分割大文件及多线程处理的方法


Posted in Python onOctober 10, 2017

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
教大家玩转Python字符串处理的七种技巧
Mar 31 Python
利用Python实现网络测试的脚本分享
May 26 Python
Pandas:DataFrame对象的基础操作方法
Jun 07 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
python基于http下载视频或音频
Jun 20 Python
元组列表字典(莫烦python基础)
Apr 03 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
如何关掉pycharm中的python console(图解)
Oct 31 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
Nov 02 Python
django中ImageField的使用详解
Dec 21 Python
python+selenium爬取微博热搜存入Mysql的实现方法
Jan 27 Python
Python列表的索引与切片
Apr 07 Python
遗传算法之Python实现代码
Oct 10 #Python
Python使用arrow库优雅地处理时间数据详解
Oct 10 #Python
Python使用getpass库读取密码的示例
Oct 10 #Python
Python 逐行分割大txt文件的方法
Oct 10 #Python
Python输出带颜色的字符串实例
Oct 10 #Python
python中使用正则表达式的连接符示例代码
Oct 10 #Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 #Python
You might like
PHP编程与应用
2006/10/09 PHP
php设计模式小结
2013/02/15 PHP
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
2014/10/17 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
Vue自定义指令实现checkbox全选功能的方法
2018/02/28 Javascript
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
一个入门级python爬虫教程详解
2021/01/27 Python
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
美国网上书店:Barnes & Noble
2018/08/15 全球购物
药学专业毕业生求职信
2013/10/20 职场文书
精彩的推荐信范文
2013/11/26 职场文书
酒店门卫岗位职责
2013/12/29 职场文书
预备党员思想汇报
2014/01/08 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
怎样写离婚协议书
2014/09/10 职场文书
要账委托书范本
2014/09/15 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
技术负责人岗位职责
2015/02/10 职场文书
感恩教育观后感
2015/06/17 职场文书
导游词之江西赣州
2019/10/15 职场文书
MySQL中连接查询和子查询的问题
2021/09/04 MySQL