2017-11-25 95 views
0

我需要下载大约1000个文件/网址,并且很难手动下载它们。使用循环下载网址/文件列表 - python

我试图通过列表放在一个列表和循环的URL,但我觉得我的代码覆盖以前的文件,只保留最后一个项目在列表中

这里是我的代码

#!/usr/bin/env python 

import urllib3 
http = urllib3.PoolManager() 

urls = ["http://url1.nt.gz" , "http://url2.nt.gz" , "http://url3.nt.gz"] 
N =1; // counter helps me to rename the downloaded files 
print "downloading with urllib" 
for url in urls 
r = http.request('GET',url) 
Name =str(N+1) // each time increment the counter by one 
with open("file"+Name+".nt.gz", "wb") as fcont: 
       fcont.write(r.data) 

有什么建议吗?

回答

0

print "downloading with urllib" for url in urls r = http.request('GET',url) Name += N

1

你不递增计数器 - 你加1,但不保存回N

设置Name后添加N += 1。在您之后您错过了:

我不太确定你有几千个网址 - 我只在urls看到3个。

#!/usr/bin/env python 

import urllib3 
http = urllib3.PoolManager() 

urls = ["http://url1.nt.gz" , "http://url2.nt.gz" , "http://url3.nt.gz"] 
N =1; // counter helps me to rename the downloaded files 
print "downloading with urllib" 
for url in urls: 
    r = http.request('GET',url) 
    Name =str(N+1) 
    N += 1 
    with open("file"+Name+".nt.gz", "wb") as fcont: 
     fcont.write(r.data) 
+0

谢谢!为了简单起见,我在列表中只添加了3个网址。有没有简单的方法来读取txt文件中的列表元素?哦,我的上帝,我无法想象我花了两天的时间搞清楚我的代码有什么问题,它的超级简单! – saad

+0

看一下[从gzip文件读取的行](https://stackoverflow.com/a/30868178/7505395),逐行读取* .gz。标记为答案,如果这个问题被回答:) –

+0

@saad对不起,忘了把你的名字加到最后的评论 –