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

使用csvkit批量转换CSV到XLSX遇模块不可调用错误求助

CSV批量转XLSX问题解答

方法可行性与问题定位

这个批量转换的思路是可行的,问题出在代码调用错误,而非整体逻辑。报错TypeError: 'module' object is not callable的原因是:你要么把convert模块当成函数调用,要么写错了函数名(代码里用了未定义的conv变量)。

修正后的csvkit批量转换代码

csvkit的convert模块需要调用内部的convert函数,以下是完整的可运行批量转换代码:

import os
from csvkit.convert import convert

# 替换为你的CSV文件夹路径
target_folder = "./your_csv_files"

# 遍历文件夹下所有CSV文件
for file_name in os.listdir(target_folder):
    if file_name.lower().endswith(".csv"):
        csv_full_path = os.path.join(target_folder, file_name)
        # 生成对应XLSX文件名
        xlsx_file_name = os.path.splitext(file_name)[0] + ".xlsx"
        xlsx_full_path = os.path.join(target_folder, xlsx_file_name)
        
        # 执行转换
        with open(csv_full_path, 'rb') as csv_file:
            with open(xlsx_full_path, 'wb') as xlsx_file:
                convert(csv_file, xlsx_file, 'xlsx', encoding='utf-8')
        
        print(f"转换完成: {file_name} -> {xlsx_file_name}")

print("所有文件批量转换结束!")

关键修正点

  1. 正确导入函数:from csvkit.convert import convert(直接导入convert函数而非整个模块)
  2. 调用正确的函数名:用convert()替代代码里未定义的conv
  3. 补充了文件夹遍历逻辑,实现真正的批量处理

其他简便批量转换方案

方案1:用pandas库(更灵活易读)

pandas是数据处理常用库,转换逻辑简洁,支持自定义参数:

import os
import pandas as pd

target_folder = "./your_csv_files"

for file_name in os.listdir(target_folder):
    if file_name.lower().endswith(".csv"):
        csv_path = os.path.join(target_folder, file_name)
        xlsx_path = os.path.join(target_folder, os.path.splitext(file_name)[0] + ".xlsx")
        
        # 读取CSV并保存为XLSX(index=False避免生成多余索引列)
        df = pd.read_csv(csv_path, encoding='utf-8')
        df.to_excel(xlsx_path, index=False)
        
        print(f"转换完成: {file_name}")

print("批量转换结束!")

方案2:命令行工具(无需写代码)

如果不想编写Python代码,可直接用命令行工具实现批量转换:

  • csvkit命令行(需先安装pip install csvkit):
    打开终端进入目标文件夹,执行:
    for file in *.csv; do in2csv "$file" | csvformat > "${file%.csv}.xlsx"; done
    
  • LibreOffice命令行(需电脑安装LibreOffice):
    终端进入目标文件夹,执行:
    for file in *.csv; do libreoffice --headless --convert-to xlsx "$file"; done
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:31:35