【问题标题】:Pandas: converting .xlsx file to .csv results in a zip filePandas:将 .xlsx 文件转换为 .csv 会生成一个 zip 文件
【发布时间】:2016-07-13 15:59:31
【问题描述】:

我正在使用 pandas 将 .xlsx 文件转换为 .csv。问题是每当我运行程序时,生成的文件都会变成 zip 文件而不是 csv 文件。 这是我的代码:

 def exl2csv(x,y):
    exlfilename = str(x)
    exlsheetname = str(y)
    workbook = xlrd.open_workbook(exlfilename)
    worksheet = workbook.sheet_by_name(exlsheetname)
    csvfileloc = os.path.join('uploads', 'frmxl2csv-' + get_random_id())
    dataframe = pd.DataFrame(worksheet)
    dataframe.to_csv(csvfileloc, sep='\t', encoding='utf-8')
    return csvfileloc

感谢您的帮助。

【问题讨论】:

  • 如果 .zip 是文件名的扩展名,Pandas 会推断您想要压缩。您能否在保存到 csv 之前打印 csvfileloc 以确保 get_random_id 不返回 .zip 扩展名?

标签: python excel csv pandas


【解决方案1】:

如果您愿意,您可以使用 pandas 来完成所有工作。

pandas.read_excel() 将允许您指定要阅读的工作表,以便您可以这样做:

def exl2csv(x,y):
    exlfilename = str(x)
    exlsheetname = str(y)
    df = pandas.read_excel(exlfilename, exlsheetname)
    csvfileloc = os.path.join('uploads', 'frmxl2csv-' + get_random_id()+'.csv')
    df.to_csv(csvfileloc, sep='\t', encoding='utf-8')
    return csvfileloc

确保在 csv 文件名的末尾传入“.csv”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 2018-07-22
    • 2022-11-17
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多