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如何用控制变量构建对话程序

Python创建于英国吗

Python输入一个数n如何判断是否为素数

Python编写图形界面如何利用aardio实现

Python全局变量和局部变量的区别

Python内置模块collections介绍

Python怎么创建数组

Python和c语言哪个好

Python中关于import与reload以及 __import__的区别详解

Python怎么判断是否为字符串

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




打赏

取消

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

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

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

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

评论

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