首页 > 解决方案 > 如何使 urllib.request 附加到现有文件?

问题描述

我正在尝试在 Python 中下载大量文本,并希望将其全部保存到一个文件中。

我当前使用的代码为每个 url 创建一个单独的文件。它遍历 url 的存档,请求数据,然后将其保存到自己的文件中。

filename = archive[i]
urllib.request.urlretrieve(url, path + filename + ".pgn")

我尝试为每个 url 使用相同的文件名,但它只是覆盖了文件。

有没有办法遍历存档,而不是将数据保存在自己的单独文件中,而是将每个文本块添加到单个文件中?或者我是否需要在之后遍历所有文件并将它们连接在一起?

标签: python

解决方案


请注意,这可能会在将来的某个时候urlretrieve 被弃用。所以urlopen改用。

import urllib.request
import shutil

...

filename = archive[i]
with urllib.request.urlopen(url) as response, open(filename, 'ab') as out_file:  
    shutil.copyfileobj(response, out_file) 

推荐阅读