一键打包下载微博中一贴的原图、视频、livephoto,收藏时本地自动备份
这段代码实现了在"微博图片"文件夹中查找zip文件,然后将其中的photos文件夹下的图片提取到名为"all_photos"的文件夹中,并删除解压过程中产生的多余文件夹。
import os # 导入os模块,用于处理文件和目录操作。
import zipfile # 导入zipfile模块,用于处理ZIP压缩文件。
import shutil # 导入shutil模块,用于文件和文件夹的复制、移动等高级操作。
# 创建一个名为"all_photos"的新文件夹,用于存放所有提取的图片。
if not os.path.exists("all_photos"):
os.makedirs("all_photos")
# 遍历名为"微博图片"的文件夹中的所有zip文件。
for file in os.listdir("微博图片"):
if file.endswith(".zip"): # 检查文件是否为zip文件。
# 打开zip文件
with zipfile.ZipFile(os.path.join("微博图片", file), 'r') as zip_ref:
# 获取zip文件内的所有文件和文件夹
file_list = zip_ref.namelist()
# 遍历文件列表,找到photos文件夹中的图片
for item in file_list:
# 检查文件是否为图片(jpg, jpeg, png, gif),并确认它在photos文件夹中。
if item.endswith((".jpg", ".jpeg", ".png", ".gif")) and "photos" in item:
# 解压图片到all_photos文件夹中
zip_ref.extract(item, "all_photos")
# 修改解压后的图片路径,将其从原始文件夹结构移动到all_photos文件夹下
old_path = os.path.join("all_photos", item)
new_path = os.path.join("all_photos", os.path.basename(item))
shutil.move(old_path, new_path)
# 删除由于解压产生的多余文件夹
for item in os.listdir("all_photos"):
item_path = os.path.join("all_photos", item)
if os.path.isdir(item_path): # 检查项目是否为文件夹。
shutil.rmtree(item_path) # 使用shutil.rmtree()删除文件夹。