使用python一次性解压所有livp文件
·
女朋友发给我的苹果livp图片文件,但是我的安卓手机打不开 ,不过这怎么难得倒我。
livp文件
livp文件本质上是个压缩包,由一个.heic和.mov文件构成。直接解压缩即可。按理说只要一个个解压缩就能在电脑打开呢。但是一个很大的问题就是,我的电脑不能批量解压缩,一百多个.livp怎么解压。索性自己写个py文件,直接全部解压,实现高效自动化处理。

实现思路
- 遍历文件夹:获取目标文件夹中所有的 .livp 文件。
- 创建输出目录:为每个 .livp 文件创建单独的输出文件夹。
- 解压文件:使用 zipfile 模块解压 .livp 文件(.livp 文件本质是 .zip 格式)。
- 错误处理:针对损坏或不符合规范的文件,添加异常捕获机制。
代码
要解压缩一个文件夹中所有的 .livp 文件并将每个 .livp 文件的内容解压到各自单独的文件夹中,可以使用以下 Python 脚本。这个脚本会使用 os 和 zipfile 库来操作文件夹和解压缩文件。
import os
import zipfile
import shutil
def extract_livp_files(input_folder, output_folder):
"""
解压指定文件夹中的所有 .livp 文件到各自的文件夹。
:param input_folder: 包含 .livp 文件的文件夹路径
:param output_folder: 解压后的文件夹的路径
"""
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 创建 heic 和 mov 文件夹
heic_folder = os.path.join(output_folder, "heic")
mov_folder = os.path.join(output_folder, "mov")
os.makedirs(heic_folder, exist_ok=True)
os.makedirs(mov_folder, exist_ok=True)
# 遍历输入文件夹中的所有文件
for file_name in os.listdir(input_folder):
if file_name.endswith('.livp'):
file_path = os.path.join(input_folder, file_name)
# 为每个 .livp 文件创建一个单独的文件夹
folder_name = os.path.splitext(file_name)[0]
extract_path = os.path.join(output_folder, folder_name)
os.makedirs(extract_path, exist_ok=True)
# 解压 .livp 文件
try:
with zipfile.ZipFile(file_path, 'r') as zip_ref:
zip_ref.extractall(extract_path)
print(f"成功解压: {file_name} 到 {extract_path}")
# 遍历解压出的文件夹,将 .heic 和 .mov 文件分别复制到对应文件夹
for extracted_file in os.listdir(extract_path):
extracted_file_path = os.path.join(extract_path, extracted_file)
if extracted_file.endswith(".heic"):
shutil.copy(extracted_file_path, heic_folder)
print(f"复制 .heic 文件: {extracted_file} 到 {heic_folder}")
elif extracted_file.endswith(".mov"):
shutil.copy(extracted_file_path, mov_folder)
print(f"复制 .mov 文件: {extracted_file} 到 {mov_folder}")
except zipfile.BadZipFile:
print(f"文件 {file_name} 不是有效的 .livp 文件或已损坏。")
# 示例用法
# 获取当前文件夹路径
current_folder = os.getcwd()
## current_folder ="G:\BaiduNetdiskDownload"可以改成自己的文件夹
# 输入文件夹路径(当前文件夹下的 .livp 文件)
input_folder = current_folder
## output_folder ="G:\BaiduNetdiskDownload"可以改成自己的输出文件夹
# 输出文件夹路径(解压后保存到当前文件夹下的 output 目录)
output_folder = os.path.join(current_folder, "output")
extract_livp_files(input_folder, output_folder)
完成
提取文件
备注下,解压的文件全以文件夹形式展现,如何在获得的文件夹中,右上角搜索".heic"文件获取所有照片,然后排序,按照类型排序,把heic文件全都圈住,复制到想要的文件夹。

不过基于此,我又将代码修改了下,还是挺容易的,将将 .heic 文件复制到 output/heic 文件夹。所有 .mov 文件复制到 output/mov 文件夹。

完美
嘿嘿嘿,以后再也不用担心女朋友发的livp图了。
更多推荐



所有评论(0)