kmh*_*ain 9 python multithreading http python-2.7
我有一个文件要下载(从 json 中提取的下载路径。例如:)http://testsite/abc.zip
。
我需要帮助才能执行,所有 5 个线程都应将abc.zip
文件下载到输出目录,并且下载必须是Asynchronous或concurrent。
目前使用下面的代码,它确实下载了 5 次文件,但它会一一下载(同步)。
我想要的是,同时下载。
def dldr(file=file_url, outputdir=out1):
local_fn = str(uuid.uuid4())
if not os.path.exists(outputdir):
os.makedirs(outputdir)
s = datetime.now()
urllib.urlretrieve(file, outputdir + os.sep + local_fn)
e = datetime.now()
time_diff = e - s
logger(out1, local_fn, time_diff)
for i in range(1, 6):
t = threading.Thread(target=dldr())
t.start()
Run Code Online (Sandbox Code Playgroud)
我将线程模块用于下载线程:
也是请求,但您可以自己将其更改为 urllib。
import threading
import requests
def download(link, filelocation):
r = requests.get(link, stream=True)
with open(filelocation, 'wb') as f:
for chunk in r.iter_content(1024):
if chunk:
f.write(chunk)
def createNewDownloadThread(link, filelocation):
download_thread = threading.Thread(target=download, args=(link,filelocation))
download_thread.start()
for i in range(0,5):
file = "C:\\test" + str(i) + ".png"
print file
createNewDownloadThread("http://stackoverflow.com/users/flair/2374517.png", file)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12860 次 |
最近记录: |