python将xls文件转换为csv格式

常见的数据集文件格式

  • xls: 是一个特有的二进制格式,其核心结构是复合文档类型的结构。(xls是Office2003版本的EXCEL表格
  • xlsx:其核心结构是 XML类型的结构,采用的是基于XML的压缩方式,使其占用的空间更小。xlsx 中最后一个x的意义就在于此。(xlsx是2007版本及以上的EXCEL表格
  • csv:格式仅保留当前工作表中单元格的值,不会保留公式、格式、图表等。(文本文件

三者之间的区别
(1)xlsx格式是向下兼容的,可兼容xls格式。但xls格式却不兼容xlsx格式,有时候会造成文本打不开的情况。
(2)csv是文本文件,可以用记事本打开;xls/xlsx是二进制文件,只有用EXCEL才能打开。
(3)csv文件只能保存活动工作表中单元格所显示的文本和数值,数据中每一列以逗号分隔,每一行都以回车换行符结束。如果单元格中包含逗号,则该单元格中的内容以双引号引起。xls/xlsx文件各个单元格之间的分隔符为Tab。
(4)csv文件可以用记事本打开,进而转为txt格式的文件;xls/xlsx不能直接转为txt格式。若想转换,则需要另存为csv格式,然后再将csv以txt方式打开,点击另存为txt文件。

深度学习中,我们获取到数据集很多都是xls或者xlsx格式,在实际的实验中,往往要用pandas读取的数据集是csv文件。(这里按行将xls转换成csv文件)

import csv
import xlrd

outputflder = r"python深度学习/data"  # 保存为csv文件的文件地址
file = r"python深度学习/data/titanic3.xls"  # 要转换的初始xls文件
worksheet = xlrd.open_workbook(file, formatting_info=True)
sheet_names = worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
    sheet = worksheet.sheet_by_name(sheet_name)
    rows = sheet.nrows  # 获取行数
    cols = sheet.ncols  # 获取列数,尽管没用到

    rowValueList = []
    for i in range(0, rows):  # 遍历行
        row_data = sheet.row_values(i)  # 第i行数据
        rowValueList.append(row_data)  # 把所有行都加进去

    outputfile = outputflder + '\\CXD' + sheet_name + '.csv'
    with open(outputfile, "w") as csvfile:
        writer = csv.writer(csvfile, lineterminator='\n')
        writer.writerows(rowValueList)

print("OK")

运行结果如下:

python将xls文件转换为csv格式_第1张图片

你可能感兴趣的:(python,pandas,开发语言,深度学习)