Python实现批量下载文件并且压缩zip格式的代码
时间: 2023-09-18 15:06:33 浏览: 153
### 回答1:
你可以使用Python中的zipfile模块来实现批量下载文件并且压缩为zip格式,示例代码如下:import zipfilefiles = ['file1.txt', 'file2.txt', 'file3.txt']zip_file = zipfile.ZipFile('files.zip', 'w')for file in files:
zip_file.write(file)zip_file.close()
### 回答2:
Python实现批量下载文件并压缩为zip格式的代码如下:
```python
import urllib.request
import zipfile
import os
# 文件下载函数
def download_file(url, save_path):
try:
urllib.request.urlretrieve(url, save_path)
print("文件下载完成:" + save_path)
except Exception as e:
print("文件下载出错:" + str(e))
# 批量下载文件
file_urls = [
"http://example.com/file1.txt",
"http://example.com/file2.txt",
"http://example.com/file3.txt"
]
save_folder = "downloaded_files/"
if not os.path.exists(save_folder):
os.makedirs(save_folder)
for i, file_url in enumerate(file_urls):
save_path = save_folder + "file" + str(i + 1) + ".txt"
download_file(file_url, save_path)
# 创建zip文件并添加下载的文件
zip_file_path = "downloaded_files.zip"
with zipfile.ZipFile(zip_file_path, "w") as zipf:
for root, dirs, files in os.walk(save_folder):
for file in files:
file_path = os.path.join(root, file)
zipf.write(file_path, os.path.relpath(file_path, save_folder))
print("文件压缩完成:" + zip_file_path)
```
以上代码首先定义了一个文件下载函数`download_file`,通过调用`urllib.request.urlretrieve`来下载文件,并指定保存路径。接着使用一个包含文件URL的列表`file_urls`来批量下载文件,将下载的文件保存到指定文件夹`save_folder`中。
然后,使用`zipfile.ZipFile`创建一个zip文件对象,并通过`zipf.write`将下载的文件添加到zip文件中。最后,指定压缩后的zip文件路径`zip_file_path`,将下载的文件压缩为zip格式。
请根据实际需求修改`file_urls`和`save_folder`变量中的值,以及压缩后的zip文件路径。
### 回答3:
可以使用Python的requests库和zipfile库来实现批量下载文件并压缩成zip格式。
首先,你需要安装requests库和zipfile库,可以使用以下命令来安装:
```
pip install requests
pip install zipfile
```
接下来,你可以使用以下代码实现批量下载文件并压缩成zip格式:
```python
import requests
import zipfile
def download_files(file_urls):
for url in file_urls:
filename = url.split("/")[-1]
response = requests.get(url)
with open(filename, "wb") as file:
file.write(response.content)
def compress_files(file_paths, zip_name):
with zipfile.ZipFile(zip_name, "w") as zip:
for path in file_paths:
zip.write(path)
# 使用示例:
file_urls = ["http://example.com/file1.txt", "http://example.com/file2.txt", "http://example.com/file3.txt"]
download_files(file_urls)
file_paths = ["file1.txt", "file2.txt", "file3.txt"]
zip_name = "files.zip"
compress_files(file_paths, zip_name)
```
在上述代码中,download_files函数用于从给定的文件URL列表中下载文件并保存在当前目录下。compress_files函数用于将给定的文件路径列表压缩成zip文件。
你需要将file_urls设置为你想要下载的文件URL列表,将file_paths设置为下载完成后文件在本地的路径列表,将zip_name设置为压缩文件的名称。
完成后,你将在当前目录下生成一个名为files.zip的zip压缩文件,其中包含下载的所有文件。