Python3用Xlsx2csv转xlsx为csv时__init__ TypeError如何修复?
问题修复方案
报错原因排查
Xlsx2csvAPI调用错误:你使用的xlsx2csv库中,Xlsx2csv类的构造方法仅需要传入待转换的xlsx文件路径,输出csv的路径需要调用实例的convert方法传入。你直接把两个路径都传给构造方法,加上类默认传入的self参数,总共传入了3个位置参数,和方法定义的参数数量不匹配,因此触发TypeError。- 代码缩进错误:你当前的文件后缀判断、转换逻辑都写在
for循环之外,仅会处理遍历到的最后一个文件,无法实现批量转换的需求。
修复后完整代码
from xlsx2csv import Xlsx2csv import os def convert_directory(in_dir, out_dir): # 自动创建输出目录,避免路径不存在报错 os.makedirs(out_dir, exist_ok=True) for filename in os.listdir(in_dir): base_name, extension = os.path.splitext(filename) # 逻辑缩进调整到for循环内,逐个处理文件 if extension == ".xlsx": csv_filename = f"{base_name}.csv" # 先实例化转换对象,再调用convert方法传入输出路径 converter = Xlsx2csv(os.path.join(in_dir, filename)) converter.convert(os.path.join(out_dir, csv_filename)) convert_directory( "/media/sf_shared/all_sample_results", "/media/sf_shared/all_samples_as_csv_files")
内容的提问来源于stack exchange,提问作者AnnaK
相关产品推荐
相关产品推荐

