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实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
python正则表达式的使用
Jun 12 Python
回调函数的意义以及python实现实例
Jun 20 Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 Python
Python实现繁体中文与简体中文相互转换的方法示例
Dec 18 Python
pyttsx3实现中文文字转语音的方法
Dec 24 Python
浅谈python 读excel数值为浮点型的问题
Dec 25 Python
Python 实现数据结构中的的栈队列
May 16 Python
python中Ansible模块的Playbook的具体使用
May 28 Python
python删除csv文件的行列
Apr 06 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 Python
python实现手机推送 代码也就10行左右
Apr 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 SESSION跨页面传递失败解决方案
2020/12/11 PHP
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
浅谈Python中的数据类型
2015/05/05 Python
python动态加载包的方法小结
2016/04/18 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
基于Python解密仿射密码
2019/10/21 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
数据库笔试题
2013/05/09 面试题
求职简历自荐信
2013/10/20 职场文书
高级护理专业大学生求职信
2013/10/24 职场文书
工作态度检讨书
2014/02/11 职场文书
垃圾桶标语
2014/06/24 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
2021/05/17 Python
 Python 中 logging 模块使用详情
2022/03/03 Python
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android