用Python下载多个带请求的文件

2024-03-28 09:09:11 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我面临以下问题:

我在一个列表中有3个下载链接。只有列表中的最后一个文件被完全下载。 其他的文件大小为1 KB

代码:

from requests import get

def download(url, filename):
    with open(filename, "wb") as file:
        response = get(url, stream=True)
        file.write(response.content)

for link in f:
    url = link
    split_url = url.split("/")
    filename = split_url[-1]
    filename = filename.replace("\n", "")
    download(url,filename)

结果如下所示:

Result

如何确保正确下载所有文件? 所有链接都是直接下载链接

提前谢谢

编辑:

我发现只有当我从.txt中读取链接时才会发生这种情况

如果我用python创建列表,如下所示:

links = ["http://ipv4.download.thinkbroadband.com/20MB.zip",
            "http://ipv4.download.thinkbroadband.com/10MB.zip",
            "http://ipv4.download.thinkbroadband.com/5MB.zip"]

。。。问题没有出现

可复制示例:

from requests import get

def download(url, filename):
    with open(filename, "wb") as file:
        response = get(url, stream = True)
        file.write(response.content)

f = open('links.txt','r')
for link in f:
    url = link
    split_url = url.split("/")
    filename = split_url[-1]
    filename = filename.replace("\n", "")
    download(url,filename)

links.txt的内容:

http://ipv4.download.thinkbroadband.com/20MB.zip
http://ipv4.download.thinkbroadband.com/10MB.zip
http://ipv4.download.thinkbroadband.com/5MB.zip

Tags: comhttpurl列表get链接responsedownload