You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python解压文件夹及Lox文件获取日志文件遇问题求助

排查Python脚本无法解压Lox文件内日志的问题

可能的错误原因及解决步骤

1. 解压路径匹配错误

你的代码默认Conquest.zip解压后会生成同名的Conquest文件夹,但如果压缩包本身没有根文件夹结构(文件直接放在压缩包根目录),extracted_folder这个路径就不存在,导致后续遍历不到.lox文件。

可以先添加路径校验,确认解压后的文件夹是否存在:

print(f"解压目标路径: {extracted_folder}")
print(f"路径是否存在: {os.path.exists(extracted_folder)}")

2. Lox文件并非标准Zip格式

zipfile模块仅支持符合Zip规范的文件,如果.lox是自定义压缩格式(比如改了扩展名的7z/rar,或是游戏专属压缩格式),用zipfile打开会失败,但无异常捕获的话你看不到错误信息。

建议添加异常捕获,排查解压失败的具体原因:

try:
    with zipfile.ZipFile(lox_path, 'r') as lox_ref:
        lox_ref.extractall(extracted_folder)
        os.remove(lox_path)
except zipfile.BadZipFile as e:
    print(f"{lox_path} 不是标准Zip文件: {e}")
except Exception as e:
    print(f"解压{lox_path}出错: {e}")

3. 文件遍历逻辑遗漏子文件夹

os.listdir只会遍历当前目录的文件,如果.lox文件在解压后的子文件夹里,会被遗漏。

修正后的代码

结合路径校验、异常捕获和递归查找逻辑,修改后的代码如下:

import zipfile
import os

zip_path = r'C:\Users\Zachary\Zip\Conquest.zip'
extract_to = r'C:\Users\Zachary\Zip'

def extract_lox_logs(zip_path, extract_to):
    # 解压主压缩包
    with zipfile.ZipFile(zip_path, 'r') as zip_ref:
        zip_ref.extractall(extract_to)
        # 打印压缩包内结构,确认解压路径是否正确
        print("压缩包内文件结构:")
        for item in zip_ref.namelist():
            print(f"- {item}")

    # 递归查找所有.lox文件
    for root, _, files in os.walk(extract_to):
        for file in files:
            if file.endswith(".lox"):
                lox_path = os.path.join(root, file)
                print(f"找到Lox文件: {lox_path}")
                try:
                    with zipfile.ZipFile(lox_path, 'r') as lox_ref:
                        lox_ref.extractall(root)
                        print(f"成功解压{lox_path}")
                        os.remove(lox_path)
                except zipfile.BadZipFile:
                    print(f"错误:{lox_path} 不是标准Zip格式,无法用zipfile解压")
                except Exception as e:
                    print(f"解压{lox_path}失败: {str(e)}")

extract_lox_logs(zip_path, extract_to)

额外建议

  • 运行修正后的脚本,查看控制台输出的压缩包结构和Lox文件处理信息,快速定位问题。
  • 如果确认Lox不是Zip格式,可尝试使用第三方库(如py7zr处理7z格式、patool支持多格式)进行解压。

内容的提问来源于stack exchange,提问作者Pac-Zac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:12:39