Python之EXCEL文件转换为CSV文件@TOC
依赖库:pandas、pathlib、os,Python版本3.9.7
手头有10000+的excel文件,每个文件只有一个sheet,10000+行,为了方便进行数据。准备将excel转化为csv文件。
源excel文件,及python代码
我对代码做了一些修改:
- 指定了pandas读取excel的引擎,engine=‘openpyxl’;
新代码及运行结果
#coding: utf-8
import pandas as pd
import openpyxl
from pathlib import *
import os
import glob
p = Path('./mini-excel')
i = 0 # 当前excel文件序数
count = 0 #计数器
for file in os.listdir(p):
count += 1
print("excel文件总数:" + str(count))
excel_num = count # excel文件总数
for x in p.iterdir():
name = os.path.basename(x).split('.')[0]
# print(name)
data_xls = pd.read_excel(Path(x), index_col=None, usecols=None, engine="xlrd")
# print(data_xls)
csvname = name + '.csv'
csvpath = Path('./csv', csvname)
data_xls.to_csv(csvpath, encoding='utf-8')
print(name + ' ' + '转换完成')
i+=1
print('待处理的excel文件数量:'+' '+str(excel_num-i))
####
#202109240237
#最开始出现的报错信息:TypeError: Fill() takes no arguments
# 目前发现好像是excel中第一列(cols = 0)的格式问题,本项目中excel文件的第一列为绝对时间格式
# 只要我把excel文件打开,并将excel的第一列宽度调整一下并保存,使第一列的内容都能完整显示
# 该excel文件就能通过本程序成功转换为 CSV 文件。
#
#202109241238
#我发现 如果用指定read_excel()函数的引擎为xlrd,并保证xlrd版本为2.0以下(此处采用1.2.0),
#就不会出现之前的报错
#