【问题标题】:How to fix __init__ typeError in python3 when converting xlsx files to csv files?将xlsx文件转换为csv文件时如何修复python3中的__init__ typeError?
【发布时间】:2021-11-30 03:49:02
【问题描述】:

我需要使用 python 3 将多个 xlsx 文件转换为 csv 文件。我尝试通过非常简单的 for 循环来执行此操作,但我不断收到以下 typeError 我无法自行修复:

TypeError                                 Traceback (most recent call last)
/media/sf_shared/convert_to_csv.py in <module>
      9         Xlsx2csv(os.path.join(in_dir, filename), os.path.join(out_dir, csv_filename))
     10 
---> 11 convert_directory( 
     12     "/media/sf_shared/all_sample_results",
     13     "/media/sf_shared/all_samples_as_csv_files")

/media/sf_shared/convert_to_csv.py in convert_directory(in_dir, out_dir)
      7     if extension == ".xlsx":
      8         csv_filename = f"{base_name}.csv"
----> 9         Xlsx2csv(os.path.join(in_dir, filename), os.path.join(out_dir, csv_filename))
     10 
     11 convert_directory(

 TypeError: __init__() takes 2 positional arguments but 3 were given

代码如下:

from xlsx2csv import Xlsx2csv
import os

def convert_directory(in_dir, out_dir):
    for filename in os.listdir(in_dir):
        base_name, extension = os.path.splitext(filename)
    if extension == ".xlsx":
        csv_filename = f"{base_name}.csv"
        Xlsx2csv(os.path.join(in_dir, filename), os.path.join(out_dir, csv_filename))

convert_directory(
    "/media/sf_shared/all_sample_results", 
    "/media/sf_shared/all_samples_as_csv_files")

【问题讨论】:

    标签: python xlsx data-conversion


    【解决方案1】:

    来自github上的例子:

    from xlsx2csv import Xlsx2csv
    Xlsx2csv("myfile.xlsx", outputencoding="utf-8").convert("myfile.csv")
    

    所以:

    Xlsx2csv(os.path.join(in_dir, filename)).convert(os.path.join(out_dir, csv_filename))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      • 2021-09-26
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多