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下Fabric的简单部署方法
Jul 14 Python
Python利用Beautiful Soup模块修改内容方法示例
Mar 27 Python
django框架如何集成celery进行开发
May 24 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
Aug 08 Python
Python搜索引擎实现原理和方法
Nov 27 Python
python numpy 显示图像阵列的实例
Jul 02 Python
python实现数据分析与建模
Jul 11 Python
python/Matplotlib绘制复变函数图像教程
Nov 21 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
解决Keras使用GPU资源耗尽的问题
Jun 22 Python
详解python with 上下文管理器
Sep 02 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下MAIL的另一解决方案
2006/10/09 PHP
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
python实现逻辑回归的方法示例
2017/05/02 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
CSS3点击按钮实现背景渐变动画效果
2016/10/19 HTML / CSS
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
材料化学应届生求职信
2013/10/09 职场文书
大专应届生个人简历的自我评价
2013/10/15 职场文书
秋季婚礼证婚词
2014/01/11 职场文书
新品发布会策划方案
2014/06/08 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
房屋过户委托书范本
2014/10/07 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
尼克胡哲观后感
2015/06/08 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python