如何使用在本地 .txt 文件中找到的网址下载多个文件
how can I download multiple files with the web address found in a local .txt file
import wget
with open('downloadhlt.txt') as file:
urls = file.read()
for line in urls.split('\n'):
wget.download(line, 'localfolder')
出于某种原因,post 无法正常工作,所以我将代码放在上面
我想做的是从一个文本文件中提取大约 200 万行这样的内容。
http://halitereplaybucket.s3.amazonaws.com/1475594084-2235734685.hlt
http://halitereplaybucket.s3.amazonaws.com/1475594100-2251426701.hlt
http://halitereplaybucket.s3.amazonaws.com/1475594119-2270812773.hlt
我想抓取每一行并请求它,以便它作为一个大于 10 的组下载。目前,我所拥有的和它一次下载一个项目,非常耗时。
我试着查看 Ways to read/edit multiple lines in python 但迭代似乎是为了编辑,而我的是为了多次执行 wget。
我没有尝试过其他方法,因为这是我第一次需要进行超过 200 万次的下载调用。
这应该可以正常工作,我是一个新手所以我真的不能
建议您启动大声笑的线程数。
无论如何,这些是我的 2 美分,希望它能有所帮助。
我试过计时你我的超过 27 次下载:
(base) MBPdiFrancesco:stack francesco$ python3 old.py
Elapsed Time: 14.542160034179688
(base) MBPdiFrancesco:stack francesco$ python3 new.py
Elapsed Time: 1.9618661403656006
这是代码,您必须创建一个 "downloads" 文件夹
import wget
from multiprocessing.pool import ThreadPool
from time import time as timer
s = timer()
thread_num = 8
def download(url):
try:
wget.download(url, 'downloads/')
except Exception as e:
print(e)
if __name__ == "__main__":
with open('downloadhlt.txt') as file:
urls = file.read().split("\n")
results = ThreadPool(8).imap_unordered(download, urls)
c = 0
for i in results:
c += 1
print("Downloaded {} file{} so far".format(c, "" if c == 1 else "s"))
print("Elapsed Time: {} seconds\nDownloaded {} files".format(timer() - s, c))
import wget
with open('downloadhlt.txt') as file:
urls = file.read()
for line in urls.split('\n'):
wget.download(line, 'localfolder')
出于某种原因,post 无法正常工作,所以我将代码放在上面 我想做的是从一个文本文件中提取大约 200 万行这样的内容。
http://halitereplaybucket.s3.amazonaws.com/1475594084-2235734685.hlt
http://halitereplaybucket.s3.amazonaws.com/1475594100-2251426701.hlt
http://halitereplaybucket.s3.amazonaws.com/1475594119-2270812773.hlt
我想抓取每一行并请求它,以便它作为一个大于 10 的组下载。目前,我所拥有的和它一次下载一个项目,非常耗时。
我试着查看 Ways to read/edit multiple lines in python 但迭代似乎是为了编辑,而我的是为了多次执行 wget。
我没有尝试过其他方法,因为这是我第一次需要进行超过 200 万次的下载调用。
这应该可以正常工作,我是一个新手所以我真的不能 建议您启动大声笑的线程数。 无论如何,这些是我的 2 美分,希望它能有所帮助。
我试过计时你我的超过 27 次下载:
(base) MBPdiFrancesco:stack francesco$ python3 old.py
Elapsed Time: 14.542160034179688
(base) MBPdiFrancesco:stack francesco$ python3 new.py
Elapsed Time: 1.9618661403656006
这是代码,您必须创建一个 "downloads" 文件夹
import wget
from multiprocessing.pool import ThreadPool
from time import time as timer
s = timer()
thread_num = 8
def download(url):
try:
wget.download(url, 'downloads/')
except Exception as e:
print(e)
if __name__ == "__main__":
with open('downloadhlt.txt') as file:
urls = file.read().split("\n")
results = ThreadPool(8).imap_unordered(download, urls)
c = 0
for i in results:
c += 1
print("Downloaded {} file{} so far".format(c, "" if c == 1 else "s"))
print("Elapsed Time: {} seconds\nDownloaded {} files".format(timer() - s, c))