- 论坛徽章:
- 7
|
Intel(R) Celeron(R) CPU G1610T @ 2.30GHz
4G内存
大约28分钟- try:
- import queue as queue
- except ImportError:
- import Queue as queue
- import codecs
- import os
- import time
- import threading
- start = time.clock()
- f = codecs.open('data.txt', encoding='utf-8')
- _task_queue = queue.Queue(maxsize=1000)
- NUM_WORKERS = 100
- def _task_queue_consumer(dir_name, f_name, q):
- data = q.get()
- # print(f_name)
- with codecs.open('./{}/{}.html'.format(dir_name, f_name), 'w+', encoding='utf-8') as f_tmp:
- f_tmp.write(data)
- tmp = 0
- while True:
- tmp += 1
- print(">>>Task {} Starting...".format(tmp))
- dir_name = str(tmp)
- if not os.path.exists(str(dir_name)):
- os.mkdir(str(dir_name))
- fname = 0
- try:
- for j in range(50):
- try:
- for i in range(1000):
- _task_queue.put(next(f))
- except StopIteration:
- pass
- if not _task_queue.qsize():
- raise Exception
- while True:
- threads = []
- for i in range(NUM_WORKERS):
- fname += 1
- t = threading.Thread(
- target=_task_queue_consumer,
- args=(dir_name, str(fname), _task_queue))
- threads.append(t)
- t.start()
- for t in threads:
- t.join()
- if _task_queue.empty():
- break
- except Exception:
- break
- print(">>>Task {} Finish...".format(tmp))
- print(">>>Finished.")
- end = time.clock()
- print(">>>Used: {} sec".format(end - start))
复制代码 |
|