用Python一步读写csv、xlsx表格
- 需求
- 代码
- 测试
需求
python的内置库csv提供了读写csv表格的方法,第三方库openpyxl 提供了读写xlsx表格的方法。
不过,为了避免每次调用这些库时都要回忆其用法,笔者将基本的读写操作封装成函数——通过python的list类型直接读写csv、xlsx表格文件,不需考虑格式等细节。
代码
def read_csv(filename, *args, **kwargs):"""从一个csv文件中读取每行数据,返回一个二维列表、- 基于csv模块。- 该函数的参数列表与open()相同。"""import csvresult = []with open(filename, *args, **kwargs) as f:csv_reader = csv.reader(f) # 在一个文件流f上创建csv阅读器try:for line in csv_reader: # 迭代csv_reader的内容result.append(line)except csv.Error as e: # 捕捉读取csv文件时的异常raise OSError("A reading error in file {}, line {}:\n{}".format(filename, csv_reader.line_num, e))return resultdef write_csv(data, filename, mode='w', newline='', **kwargs):""" 将数据(比如二维列表)转换成csv格式,再保存到指定文件中。- 基于csv模块。"""import csvwith open(filename, mode, newline=newline, **kwargs) as f:csv_writer = csv.writer(f) # 在文件流f上创建一个csv写入器csv_writer.writerows(data) # 写入多行def read_xlsx(filename, read_only=True, *args, **kwargs):"""读取一个xlsx表格中的全部数据,保存为一个字典返回。- 该字典的key为xlsx中一个sheet的名字,value为该sheet的所有行组成的list。- 该函数的参数与 openpyxl.load_workbook() 相同。- read_only=True 表示以只读模式打开,读取速度更快。"""from openpyxl import load_workbookwb = load_workbook(filename, read_only, *args, **kwargs)data_dict = {}# 遍历xlsx中的每个sheet,遍历每个sheet中的每行数据,保存为字典类型for name in wb.sheetnames:data_dict[name] = [row for row in wb[name].values]wb.close()return data_dictdef write_xlsx(data_dict, filename, write_only=True):"""将一个字典写入xlsx表格。- 如果输入的data不是字典类型,会先转换成 key="Sheet1" 的字典。- 该字典的key为xlsx中一个sheet的名字,value为该sheet的所有行组成的list。- write_only=True 表示以只写模式打开,读取速度更快。"""from openpyxl import Workbookif not isinstance(data_dict, dict):data_dict = {"Sheet1": data_dict}wb = Workbook(data_dict, write_only)# 遍历data_dict中的每个value,遍历每个value的每行数据,保存为xlsx表格for k, v in data_dict.items():ws = wb.create_sheet(k)for row in v:ws.append(row)wb.save(filename)wb.close()
测试
# 编造数据data = [[1, 2, 3],[4, 5, 6]]# 读写csvwrite_csv(data, "1.csv")for line in read_csv("1.csv"):print(line)# 编造数据dict_data = {"sheet1": data,"sheet2": data}# 读写xlsxwrite_xlsx(dict_data, "1.xlsx")for k, v in read_xlsx("1.xlsx").items():print(k, v)
csv表格的保存结果:
xlsx表格的保存结果:
终端的显示结果:
用Python一步读写csv、xlsx表格相关推荐
- python读csv-python读写csv文件
1用python做数据分析,数据来源一般会有多种格式,而我喜欢以CSV的方式进行存储分析,如果数据本身就是CSV格式的那我可以直接用pandas库自带的方法进行读取即可,但是有时候各种来源的数据不方便 ...
- 读写csv,xlsx文件的工具类
微信搜索:"二十同学" 公众号,欢迎关注一条不一样的成长之路 Java对csv文件和xlsx文件进行读写的工具类,简单易用,代码如下: 需要引用的依赖 <dependency ...
- python删除csv某一行_用Python一步从csv中删除特定的行和列
步骤1,创建一个示例数据import pandas as pd # Create sample CSV-file (100x100) df = pd.DataFrame(np.arange(10000 ...
- python openpyxl库读写更新excel表格
安装openpyxl库 pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple # 清华镜像源 1.读取excel文件内容 d ...
- python本地读csv文件_python读写csv文件方法详细总结
python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...
- python怎么读取csv文件-python读写csv文件方法详细总结
python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...
- python 数据分析-读写数据csv、xlsx文件
1.读写csv文件可以使用基础python实现,或者使用csv模块.pandas模块实现. 基础python读写csv文件 读写单个CSV 以下为通过基础python读取CSV文件的代码,请注意,若字 ...
- python: xlsx表格转为csv文件
代码+注释 绝对详细的xlsx表格转为csv文件过程 : D # coding = utf-8 import os import pandas as pd import csv from openpy ...
- python处理excel表格数据-零基础使用Python读写处理Excel表格的方法
引 由于需要解决大批量Excel处理的事情,与其手工操作还不如写个简单的代码来处理,大致选了一下感觉还是Python最容易操作. 安装库Python环境 首先当然是配环境,不过选Python的一个重要 ...
最新文章
- 【基于深度学习的脑电图识别】数据集篇:脑电信号自动判读的大数据
- 转:VirtualBox虚拟机网络连接设置的四种方式
- HDU - 2795 Billboard(线段树)
- Linux集群服务知识点总结及通过案例介绍如何实现高性能web服务(三)
- 【HDU - 3714 】Error Curves (三分)
- springboot 多数据源_SpringBoot整合多数据源的巨坑一
- pytorch: torch.Tensor.view ------ reshape
- 关于解决vivado error:add_1 must be in range [-1,DEPTH-1] 问题
- Android 科大讯飞、语音听写集成指南
- 卸载oracle11g全部,完全卸载oracle11g步骤:
- 购物网站,网上购物系统,网上商城系统毕业设计
- PHP+jQuery年会在线拍照抽奖
- Kindle3 字典安装
- 新能源整车控制器VCU开发过程分享
- html5 sha1,js-sha1加密
- 嵌入式软件工程师对linux要求,嵌入式软件工程师的必备知识
- android模拟器 adb 命令,安卓模拟器下 使用ADB命令
- 小生意同样能赚大钱,卖豆芽都能一年存20多万?你怎么看?
- Squared Error 数学
- 西安理工大学计算机科学与工程学院官网,罗靖-西安理工大学计算机科学与工程学院...
热门文章
- cargo build failed: SSL connect error (schannel: failed to receive handshake, SSL/TLS connection fai
- Node fs同步、异步写入文件(一)
- 从腾讯云服务器迁移到轻量应用服务器
- 初识 ❤ TensorFlow |【一见倾心】
- zabbix通过插件percona进行监控MySQL
- 8、135条最全弱电智能化综合布线常用术语
- win10:如何设置电脑睡眠只息屏
- 嵌入式物联网项目实践1.1
- 前端面试宝典。向未来开启计划
- QT---实现舒尔特方格(零基础入门)