【发布时间】:2020-03-08 08:36:43
【问题描述】:
我继承了一个特定的解析器,它应该解析 10 个文件,每个文件大约 4m 行。
代码是用 Python 2 编写的,我对其进行了更新。
有一个多处理逻辑,我似乎无法开始工作。
from multiprocessing.pool import ThreadPool
import glob
DATADIR = 'home/my_dir/where/all/my/files/are'
def process_file(filepath):
# read line by line, parse and insert to postgres database.
def process_directory(dirpath):
pattern = f'{dirpath}/*dat' # files have .dat extension.
tp = ThreadPool(10)
for filepath in glob.glob(pattern):
print(filepath)
tp.apply_async(process_file, filepath)
tp.close()
tp.join()
if __name__ == '__main__':
process_directory(DATADIR)
我浏览了很多文档和一些类似的问题,但它似乎不起作用。
使用解析器代码,我确实会在控制台上打印出我需要解析的文件的所有路径,但程序仅此而已。
【问题讨论】:
-
在你的小sn-p中,你什么时候“运行”线程?我看不到那条线,只声明 Pool ,关闭并加入
标签: python python-3.x parallel-processing multiprocessing threadpool