简单的并行编程-python调用百度人脸识别:来一次颜值评分

12.8 简单的并行编程
问题你有个程序要执行 CPU 密集型工作,你想让他利用多核 CPU 的优势来运行的快一点。解决方案 concurrent.futures 库提供了一个 ProcessPoolExecutor 类,可被用来在一个单独的 Python 解释器中执行计算密集型函数。不过,要使用它,你首先要有一些计算密集型的任务。我们通过一个简单而实际的例子来演示它。
假定你有个 Apache web 服务器日志目录的 gzip : logs/
20120701.log.gz
20120702.log.gz
20120703.log.gz
20120704.log.gz
20120705.log.gz
20120706.log.gz ...
进一步假设每个日志文件内容类似下面这样:
124.115.6.12 - - [10/Jul/2012:00:18:50 -0500] "GET /robots.txt ..." 200 71 210.212.209.67 - - [10/Jul/2012:00:18:51 -0500] "GET /ply/ ..." 200 11875 210.212.209.67 - - [10/Jul/2012:00:18:51 -0500] "GET /favicon.ico ..." 404 369 61.135.216.105 - - [10/Jul/2012:00:20:04 -0500] "GET /blog/atom.xml ..." 304 - ...
下面是一个脚本,在这些日志文件中查找出所有访问过 robots.txt 文件的主机:
# findrobots.py
import gzip
import io
import glob
def find_robots(filename): '
Find all of the hosts that access robots.txt in a single log file
'
tools = set()
with gzip.open(filename) as f:
for line in io.TextIOWrapper(f,encoding='ascii'):
fields = line.split()
if field
pdf 文件大小:2.26MB