import os import platform import sys import tempfile import urllib.parse import urllib.request from concurrent.futures import ThreadPoolExecutor print(platform.platform()) print("Python", sys.version) n = 10 with tempfile.TemporaryDirectory() as d: urls = [] for i in range(n): fn = os.path.join(d, "%03d.txt" % i) with open(fn, "wt") as f: f.write("contents of %d\n" % i) urls.append(urllib.parse.urlunparse(("file", "", fn, "", "", ""))) def slurp_url(u): with urllib.request.urlopen(u): pass with ThreadPoolExecutor(max_workers=len(urls)) as P: list(P.map(slurp_url, urls))