Python之EXCEL文件转换为CSV文件

Python之EXCEL文件转换为CSV文件@TOC

依赖库:pandas、pathlib、os,Python版本3.9.7

手头有10000+的excel文件,每个文件只有一个sheet,10000+行,为了方便进行数据。准备将excel转化为csv文件。

源excel文件,及python代码

需要处理的excel文件
在python项目文件夹下建立两个文件夹,一个存放需要处理的Excel文件,一个存放转换完毕的CSV文件
在这里插入图片描述

原python代码运行报错1/2
原python运行保存2/2

我对代码做了一些修改:

  1. 指定了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),
#就不会出现之前的报错
#

代码运行成功
Excel成功转换成CSV文件,并存入指定文件夹
参考链接
pandas.read_excel文档
Pandas读取excel时需要合适的引擎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值