excel格式批量转csv 背景 思路 结果预览 完整代码 代码解读 延申思考 背景 好不容易把数据表格整出来发给地理可视化同事,反馈说
excel格式批量转csv
- 背景
- 思路
- 结果预览
- 完整代码
- 代码解读
- 延申思考
背景
好不容易把数据表格整出来发给地理可视化同事,反馈说arcgis对xlsx后缀不友好,没有注册类,希望改成csv格式或者xls格式,由于表格数据太多共12个,不太乐意一个一个手动打开然后另存为,只好求助于python批量转格式。
思路
- 首先,批量读取这批excel文件
- 其次,利用pd.to_csv()函数写成csv格式,且保存文件名一致
结果预览
原xlsx格式数据在测试数据文件下,共12个,与py文件同级的12个是后面程序跑出来的对应csv格式数据。
完整代码
# -*- coding: utf-8 -*-"""
project_name:excel格式转换
@author: 帅帅de三叔
Created on Wed Nov 20 10:45:24 2019
"""
import os #operating system 操作系统模块
import pandas as pd #导入数据处理模块
path=r"D:\Python项目\转换excel格式为xls或者csv\测试数据" #指定路径
filenames = os.listdir(path) #返回指定路径下所有文件和目录名,文件名构成的字符串列表
for file in filenames: #对文件列表循环
excel_path = u'D:\Python项目\转换excel格式为xls或者csv\测试数据\\' + file #构造访问绝对路径
print(excel_path) #测试文件绝对路径
f = open(excel_path,'rb') #以二进制读模式打开文件
data = pd.read_excel(f) #读取数据
data.to_csv(file.split(".")[0]+".csv") #另存为csv格式
代码解读
主要用到了os模块,该模块主要用来文件操作,比如**os.listdir()函数可以指定路径,然后循环用open()函数一个一个读取,紧接着用pd.read_excel()函数读取数据,最后用to_csv()**函数保存,思路自然。
延申思考
源代码和测试数据要分开放,测试数据文件下需要都是excel 文件,这与循环的时候pd.read_excel才不会报错,如果里面还有其他格式的文件,如txt等,可以使用try-except 来规避。