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

这篇文章主要介绍了python实现模拟分割大文件及多线程处理的方法,涉及python文件读取、分割及多线程相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python实现模拟分割大文件及多线程处理的方法。分享给大家供大家参考,具体如下:

#!/usr/bin/env python#--*-- coding:utf-8 --*--from random import randintfrom time import ctimefrom time import sleepimport queueimport threadingclass 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:        breakdef 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模拟分割大文件以及多线程处理的实现方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2265933.html

(0)
上一篇 2025年2月27日 09:01:29
下一篇 2025年2月26日 04:52:08

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论