整体思路
1.将文件夹中的livp格式重命名为zip格式的文件
2.解压zip格式的文件到本地。从而能得到jpeg格式的文件。

随机解压一个文件后,查看转换后的内容

完美,已经能正常打开。
展示完整的方式
实操
编写py后缀的python代码,先测试下
import os
def rename_files(directory_path):
if not os.path.exists(directory_path):
print(f"目录 '{directory_path}' 不存在")
return
files = os.listdir(directory_path)
for file_name in files:
if file_name.endswith(".livp"):
new_file_name = os.path.join(directory_path, file_name[:-5]+".zip")
old_file_path = os.path.join(directory_path, file_name)
os.rename(old_file_path, new_file_name)
print(f"已将文件 '{file_name}' 重命名为 '{new_file_name}'.")
directory_path="D:\\BaiduNetdiskDownload\\天津"
rename_files(directory_path)
运行代码
嗯,是的,中文展示还需要再调,我也就没太在意了。
修改下脚本,新增编码格式。这样就能显示出中文

继续调整,将zip解压到当前文件夹中,并删除.mov格式的文件,只保留图片。

查看文件

优化的地方,将压缩的zip文件也一并删除
同时将livp转过去的照片格式,前面的JPG也去掉,就更适合自己使用了。

这才是最后想要的结果吧

展示未优化的完整代码
import os
import sys
import io
import zipfile
import glob
#设置编码格式为utf-8
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
def rename_files(directory_path):
#检查目录是否存在
if not os.path.exists(directory_path):
print(f"目录 '{directory_path}' 不存在")
return
#获取目录下的所有文件
files = os.listdir(directory_path)
for file_name in files:
#只处理目录下livp结尾的文件
if file_name.endswith(".livp"):
#构建新的文件名,将.livp替换为.zip
new_file_name = os.path.join(directory_path, file_name[:-5]+".zip")
#原文件的完整路径
old_file_path = os.path.join(directory_path, file_name)
#重命名文件
os.rename(old_file_path, new_file_name)
print(f"已将文件 '{file_name}' 重命名为 '{new_file_name}'.")
def rename_files_jpg(directory_path):
#检查目录是否存在
if not os.path.exists(directory_path):
print(f"目录 '{directory_path}' 不存在")
return
#获取目录下的所有文件
files = os.listdir(directory_path)
for file_name in files:
#只处理目录下livp结尾的文件
if file_name.endswith(".jpeg"):
#构建新的文件名,将.livp替换为.zip
new_file_name = os.path.join(directory_path, file_name[:-9]+".jpg")
#原文件的完整路径
old_file_path = os.path.join(directory_path, file_name)
#重命名文件
os.rename(old_file_path, new_file_name)
print(f"已将文件 '{file_name}' 重命名为 '{new_file_name}'.")
def unzip_zip(target_path):
#检查目录是否存在
if not os.path.exists(target_path):
print(f"目录 '{target_path}' 不存在")
return
#切换到目标目录下
os.chdir(target_path)
print(f"正在处理的目录:{os.getcwd()}")
#解压所有的zip文件
zip_files = glob.glob("*.zip")
if not zip_files:
print(f"未找到.zip文件")
return
else:
for zip_path in zip_files:
try:
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
#解压到当前目录
zip_ref.extractall()
print(f"已解压:{zip_path}")
except zipfile.BadZipFile:
print(f"错误:{zip_path} 不是有效的zip文件")
except Exception as e:
print(f"解压{zip_path}时出错:{e}")
#删除所有的mov文件
print(f"\n开始删除.mov文件。。。。")
mov_files = glob.glob("*.mov")
if not mov_files:
print(f"未找到.mov文件")
return
else:
for mov_file in mov_files:
try:
os.remove(mov_file)
print(f"已删除{mov_file}")
except Exception as e:
print(f'删除{mov_file}时出错:{e}');
print(f"\n任务已完成")
def delete_file(target_path):
#检查目录是否存在
if not os.path.exists(target_path):
print(f"目录 '{target_path}' 不存在")
return
#切换到目标目录下
os.chdir(target_path)
print(f"正在处理的目录:{os.getcwd()}")
#删除所有的mov文件
print(f"\n开始删除.zip文件。。。。")
zip_files = glob.glob("*.zip")
if not zip_files:
print(f"未找到.zip文件")
return
else:
for zip_file in zip_files:
try:
os.remove(zip_file)
print(f"已删除{zip_file}")
except Exception as e:
print(f'删除{zip_file}时出错:{e}');
print(f"\n任务已完成")
directory_path=r"D:\\BaiduNetdiskDownload\\天津"
target_path=r"D:\\BaiduNetdiskDownload\\天津"
#rename_files(directory_path)
#unzip_zip(target_path)
#delete_file(target_path)
rename_files_jpg(directory_path)
修改优化后的完整代码
import os,sys,io,zipfile,glob
# 解决 Windows 控制台中文乱码
try:
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
except Exception:
pass
def ensure_directory(path):
"""
检查并切换到目标目录
:param path: 目录路径
:return: bool 是否成功
"""
if not os.path.exists(path):
print(f"❌ 目录不存在: {path}")
return False
if not os.path.isdir(path):
print(f"❌ 路径不是目录: {path}")
return False
try:
os.chdir(path)
print(f"📁 切换到目录: {os.getcwd()}")
return True
except Exception as e:
print(f"❌ 无法切换到目录 '{path}': {e}")
return False
def rename_files_by_extension(directory, old_ext, new_ext):
"""
将指定扩展名的文件重命名为新扩展名
"""
print(f"\n🔄 重命名 '{old_ext}' → '{new_ext}' ...")
if not ensure_directory(directory):
return
files = glob.glob(f"*{old_ext}")
if not files:
print(f"🔍 未找到 '{old_ext}' 文件。")
return
renamed_count = 0
for file_name in files:
new_name = file_name[:-len(old_ext)] + new_ext
try:
os.rename(file_name, new_name)
print(f"✅ 重命名: {file_name} → {new_name}")
renamed_count += 1
except FileExistsError:
print(f"❌ 跳过: {new_name} 已存在")
except Exception as e:
print(f"❌ 失败: {file_name} -> {e}")
print(f"✅ 成功重命名 {renamed_count} 个文件。")
def delete_files_by_extension(directory, extensions):
"""
✅ 统一删除函数:删除目录中匹配任意扩展名的文件
:param directory: 目标目录
:param extensions: 扩展名列表,如 ['.zip', '.mov', '.tmp']
:return: 删除的文件总数
"""
print(f"\n🗑️ 正在删除文件: {', '.join(extensions)}")
if not ensure_directory(directory):
return 0
deleted_count = 0
for ext in extensions:
# 确保扩展名以点开头
pattern = f"*{ext}" if ext.startswith('.') else f"*.{ext}"
files = glob.glob(pattern)
for file_name in files:
try:
os.remove(file_name)
print(f"✅ 已删除: {file_name}")
deleted_count += 1
except Exception as e:
print(f"❌ 删除失败 {file_name}: {e}")
print(f"✅ 共删除 {deleted_count} 个文件。")
return deleted_count # 返回数量,便于调用方判断
def unzip_all_zips(directory, cleanup_exts=None):
"""
解压所有 .zip 文件,并可选择性清理指定类型的文件
:param directory: 目标目录
:param cleanup_exts: 解压后要删除的扩展名列表,如 ['.mov']
"""
print(f"\n📦 正在解压 ZIP 文件...")
if not ensure_directory(directory):
return
zip_files = glob.glob("*.zip")
if not zip_files:
print("🔍 未找到 .zip 文件。")
return
extracted_count = 0
for zip_file in zip_files:
try:
with zipfile.ZipFile(zip_file, 'r') as zf:
zf.extractall()
print(f"✅ 已解压: {zip_file}")
extracted_count += 1
except zipfile.BadZipFile:
print(f"❌ 无效 ZIP 文件: {zip_file}")
except Exception as e:
print(f"❌ 解压失败 {zip_file}: {e}")
print(f"✅ 共解压 {extracted_count} 个文件。")
# ✅ 复用 delete_files_by_extension
if cleanup_exts:
print(f"\n🧹 开始清理临时文件...")
delete_files_by_extension(directory, cleanup_exts)
if __name__ == "__main__":
target_dir = r"D:\BaiduNetdiskDownload\天津"
# 1. .livp → .zip
rename_files_by_extension(target_dir, ".livp", ".zip")
# 2. 解压所有 .zip,并删除 .mov 文件
unzip_all_zips(target_dir, cleanup_exts=[".mov"])
# 3. .jpeg → .jpg
rename_files_by_extension(target_dir, ".jpeg", ".jpg")
# 4. 单独删除 .zip 文件(例如清理)
delete_files_by_extension(target_dir, [".zip"])
# 5. 批量删除多种类型
# delete_files_by_extension(target_dir, [".tmp", ".log", ".bak"])


5790





