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中is与==判断的区别
Mar 28 Python
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
Python 隐藏输入密码时屏幕回显的实例
Feb 19 Python
python GUI实现小球满屏乱跑效果
May 09 Python
python3多线程知识点总结
Sep 26 Python
django序列化serializers过程解析
Dec 14 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
使用python实现微信小程序自动签到功能
Apr 27 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
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
vue实现通讯录功能
2018/07/14 Javascript
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
基于python时间处理方法(详解)
2017/08/14 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
python实现取余操作的简单实例
2020/08/16 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
介绍一下Java中的static关键字
2012/05/12 面试题
公司节能减排倡议书
2014/05/14 职场文书
个人党性分析材料
2014/12/19 职场文书
小学推普周活动总结
2015/05/07 职场文书
交通处罚决定书
2015/06/24 职场文书
2015年高三毕业班班主任工作总结
2015/10/22 职场文书
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫