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


本文摘自php中文网,作者黄舟,侵删。

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

#!/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在groupby分组后提取指定位置记录方法

Python的2d绘图库matplotlib的安装方法及功能介绍

turtle.done()的作用是什么

Python 实用函数进阶(更新中)

golang和Python有什么区别?

Python如何查找字符串的长度?(代码示例)

Python中format函数什么意思

利用Python执行shell脚本 并动态传参 及subprocess基本使用

Python 实现在文件中的每一行添加一个逗号

Python file readlines() 使用方法

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...