女朋友发给我的苹果livp图片文件,但是我的安卓手机打不开 ,不过这怎么难得倒我。

livp文件

livp文件本质上是个压缩包,由一个.heic和.mov文件构成。直接解压缩即可。按理说只要一个个解压缩就能在电脑打开呢。但是一个很大的问题就是,我的电脑不能批量解压缩,一百多个.livp怎么解压。索性自己写个py文件,直接全部解压,实现高效自动化处理。

实现思路

  1. 遍历文件夹:获取目标文件夹中所有的 .livp 文件。
  2. 创建输出目录:为每个 .livp 文件创建单独的输出文件夹。
  3. 解压文件:使用 zipfile 模块解压 .livp 文件(.livp 文件本质是 .zip 格式)。
  4. 错误处理:针对损坏或不符合规范的文件,添加异常捕获机制。

代码

要解压缩一个文件夹中所有的 .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图了。

更多推荐