Python 将 xlsx 转换为 csv

Python converting xlsx to csv

我正在尝试将文件夹中的所有 xlsx 文件转换为 csv 文件。它在过去运行良好,但这次我收到一个错误,让我毫无头绪。

这是我的代码:

excel_files = glob.glob('/*xlsx*')

for excel_file in excel_files:
    df = pd.read_excel(excel_file)
    output = excel_file.split('.')[0]+'.csv'
    df.to_csv(output)

我还尝试了以下行以确保它不是编码问题:

df.to_csv(output, encoding='utf-8', index=False)

它转换了大约 1000 个文件,但其余 7000 个文件一直出现错误:

KeyError: 'rId6'

你会怎么解决?谢谢。

您的某些文件格式不正确。您应该在循环中添加异常处理,这将允许转换继续并指示您的哪些文件导致了问题:

excel_files = glob.glob('/*xlsx*')

for excel_file in excel_files:
    print("Converting '{}'".format(excel_file))
    try:
        df = pd.read_excel(excel_file)
        output = excel_file.split('.')[0]+'.csv'
        df.to_csv(output)    
    except KeyError:
        print("  Failed to convert")

然后您可以尝试打开 Excel 中的失败文件,看看它们是否加载正常。如果它们确实加载了,您可以将失败的 Excel 文件的示例上传到 pastebin 之类的东西,并在此处添加带有 link 的评论,以便重新创建问题。