python将excel转换为csv的代码方法总结


Posted in Python onJuly 03, 2019

python:如何将excel文件转化成CSV格式

import pandas as pd
data = pd.read_excel('123.xls','Sheet1',index_col=0)
data.to_csv('data.csv',encoding='utf-8')

将Excel文件转为csv文件的python脚本

#!/usr/bin/env python 
__author__ = "lrtao2010"
'''
Excel文件转csv文件脚本
需要将该脚本直接放到要转换的Excel文件同级目录下
支持xlsx 和 xls 格式
在同级目录下生成名为excel_to_csv.csv 的文件,采用UTF-8编码
'''
import xlrd
import csv
import os
#生成的csv文件名
csv_file_name = 'excel_to_csv.csv'
def get_excel_list():
  #获取Excel文件列表
  excel_file_list = []
  file_list = os.listdir(os.getcwd())
  for file_name in file_list:
    if file_name.endswith('xlsx') or file_name.endswith('xls'):
      excel_file_list.append(file_name)
  return excel_file_list
def get_excel_header(excel_name_for_header):
  #获取表头,并将表头全部变为小写
  workbook = xlrd.open_workbook(excel_name_for_header)
  table = workbook.sheet_by_index(0)
  #row_value = table.row_values(0)
  row_value = [i.lower() for i in table.row_values(0)]
  return row_value
def read_excel(excel_name):
  #读取Excel文件每一行内容到一个列表中
  workbook = xlrd.open_workbook(excel_name)
  table = workbook.sheet_by_index(0) #读取第一个sheet
  nrows = table.nrows
  ncols = table.ncols
  # 跳过表头,从第一行数据开始读
  for rows_read in range(1,nrows):
    #每行的所有单元格内容组成一个列表
    row_value = []
    for cols_read in range(ncols):
      #获取单元格数据类型
      ctype = table.cell(rows_read, cols_read).ctype
      #获取单元格数据
      nu_str = table.cell(rows_read, cols_read).value
      #判断返回类型
      # 0 empty,1 string, 2 number(都是浮点), 3 date, 4 boolean, 5 error
      #是2(浮点数)的要改为int
      if ctype == 2:
        nu_str = int(nu_str)
      row_value.append(nu_str)
    yield row_value

def xlsx_to_csv(csv_file_name,row_value):
  #生成csv文件
  with open(csv_file_name, 'a', encoding='utf-8',newline='') as f: #newline=''不加会多空行
    write = csv.writer(f)
    write.writerow(row_value)
if __name__ == '__main__':
  #获取Excel列表
  excel_list = get_excel_list()
  #获取Excel表头并生成csv文件标题
  xlsx_to_csv(csv_file_name,get_excel_header(excel_list[0]))
  #生成csv数据内容
  for excel_name in excel_list:
    for row_value in read_excel(excel_name):
      xlsx_to_csv(csv_file_name,row_value)
  print('Excel文件转csv文件结束 ')

以上就是2种实例方法,感谢大家的阅读和对三水点靠木的支持。

Python 相关文章推荐
Python环境下安装使用异步任务队列包Celery的基础教程
May 07 Python
python2.x实现人民币转大写人民币
Jun 20 Python
对python3新增的byte类型详解
Dec 04 Python
Python中整数的缓存机制讲解
Feb 16 Python
python字典一键多值实例代码分享
Jun 14 Python
pytorch 预训练层的使用方法
Aug 20 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 Python
Python DES加密实现原理及实例解析
Jul 17 Python
Python Matplotlib简易教程(小白教程)
Jul 28 Python
Elasticsearch 数据类型及管理
Apr 19 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 Python
pandas实现to_sql将DataFrame保存到数据库中
Jul 03 #Python
python实现控制COM口的示例
Jul 03 #Python
python pandas时序处理相关功能详解
Jul 03 #Python
在linux下实现 python 监控usb设备信号
Jul 03 #Python
django-allauth入门学习和使用详解
Jul 03 #Python
python使用mitmproxy抓取浏览器请求的方法
Jul 02 #Python
Python使用线程来接收串口数据的示例
Jul 02 #Python
You might like
图像替换新技术 状态域方法
2010/01/28 Javascript
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
2016/05/31 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
ajax jquery实现页面某一个div的刷新效果
2021/03/04 jQuery
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
python函数返回多个值的示例方法
2013/12/04 Python
python实现的jpg格式图片修复代码
2015/04/21 Python
python中__call__内置函数用法实例
2015/06/04 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
python多进程实现进程间通信实例
2017/11/24 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
Python如何将模块打包并发布
2020/08/30 Python
Java程序员综合测试题
2014/04/25 面试题
计算机专业推荐信范文
2013/11/20 职场文书
集体备课反思
2014/02/12 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
颐和园导游词
2015/01/30 职场文书
清洁员岗位职责
2015/02/15 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js