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

批量转换目录中hic文件至cool格式的代码报错排查

解决hic文件批量转cool格式的代码报错问题

错误原因分析

  1. os.listdir参数非法:os.listdir()仅接受合法目录路径,不能带通配符*hic,你传入的./others/*hic不是有效目录,因此触发FileNotFoundError。
  2. 路径拼接与文件处理错误:os.path.join用法错误,且手动打开文件的操作多余——hic2cool_convert通常直接接收文件路径字符串,无需手动创建文件对象。
  3. 输出文件名无效:outdir + "f"是固定字符串,会导致所有输出覆盖同一文件,且未基于原文件名生成对应输出。

修正后的代码

import os
from hic2cool import hic2cool_convert

indir = "./others/"
outdir = "output/"

# 确保输出目录存在,不存在则自动创建
os.makedirs(outdir, exist_ok=True)

# 遍历目标目录,筛选.hic后缀文件
for filename in os.listdir(indir):
    if filename.endswith(".hic"):
        # 拼接完整输入文件路径
        in_file_path = os.path.join(indir, filename)
        # 生成对应输出文件名:替换后缀为.cool
        out_filename = f"{os.path.splitext(filename)[0]}.cool"
        out_file_path = os.path.join(outdir, out_filename)
        # 执行转换
        hic2cool_convert(in_file_path, out_file_path)

关键修正点

  • 用os.listdir(indir)获取目录下所有文件,再通过endswith(".hic")筛选目标文件,替代错误的通配符用法。
  • 直接传递文件路径字符串给hic2cool_convert,省去手动打开文件的冗余操作。
  • 用os.path.splitext处理文件名,确保每个输入文件对应唯一的输出文件,避免覆盖。
  • 添加os.makedirs确保输出目录存在,避免因目录缺失报错。

内容的提问来源于stack exchange,提问作者Anon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:52:06