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 crontab设置linux定时任务
Dec 08 Python
scrapy爬虫实例分享
Dec 28 Python
Python Pandas找到缺失值的位置方法
Apr 12 Python
python实现内存监控系统
Mar 07 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
Apr 04 Python
python学习开发mock接口
Apr 28 Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 Python
python实现微信自动回复机器人功能
Jul 11 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
python编写俄罗斯方块
Mar 13 Python
教你使用Pandas直接核算Excel中快递费用
May 12 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(一)
2012/03/21 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
javascript实现捕捉键盘上按下的键
2015/05/05 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
python实现堆栈与队列的方法
2015/01/15 Python
Python的设计模式编程入门指南
2015/04/02 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
2019/04/26 Python
Python控制Firefox方法总结
2019/06/03 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
J2EE面试题集锦(附答案)
2013/08/16 面试题
出纳岗位职责范本
2013/12/01 职场文书
十佳班主任事迹材料
2014/01/18 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
工人先进事迹材料
2014/12/26 职场文书
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python