• 需求
  • 代码
  • 测试

需求

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表格相关推荐

  1. python读csv-python读写csv文件

    1用python做数据分析,数据来源一般会有多种格式,而我喜欢以CSV的方式进行存储分析,如果数据本身就是CSV格式的那我可以直接用pandas库自带的方法进行读取即可,但是有时候各种来源的数据不方便 ...

  2. 读写csv,xlsx文件的工具类

    微信搜索:"二十同学" 公众号,欢迎关注一条不一样的成长之路 Java对csv文件和xlsx文件进行读写的工具类,简单易用,代码如下: 需要引用的依赖 <dependency ...

  3. python删除csv某一行_用Python一步从csv中删除特定的行和列

    步骤1,创建一个示例数据import pandas as pd # Create sample CSV-file (100x100) df = pd.DataFrame(np.arange(10000 ...

  4. python openpyxl库读写更新excel表格

    安装openpyxl库 pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple # 清华镜像源 1.读取excel文件内容 d ...

  5. python本地读csv文件_python读写csv文件方法详细总结

    python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...

  6. python怎么读取csv文件-python读写csv文件方法详细总结

    python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...

  7. python 数据分析-读写数据csv、xlsx文件

    1.读写csv文件可以使用基础python实现,或者使用csv模块.pandas模块实现. 基础python读写csv文件 读写单个CSV 以下为通过基础python读取CSV文件的代码,请注意,若字 ...

  8. python: xlsx表格转为csv文件

    代码+注释 绝对详细的xlsx表格转为csv文件过程 : D # coding = utf-8 import os import pandas as pd import csv from openpy ...

  9. python处理excel表格数据-零基础使用Python读写处理Excel表格的方法

    引 由于需要解决大批量Excel处理的事情,与其手工操作还不如写个简单的代码来处理,大致选了一下感觉还是Python最容易操作. 安装库Python环境 首先当然是配环境,不过选Python的一个重要 ...

最新文章

  1. 【基于深度学习的脑电图识别】数据集篇:脑电信号自动判读的大数据
  2. 转:VirtualBox虚拟机网络连接设置的四种方式
  3. HDU - 2795 Billboard(线段树)
  4. Linux集群服务知识点总结及通过案例介绍如何实现高性能web服务(三)
  5. 【HDU - 3714 】Error Curves (三分)
  6. springboot 多数据源_SpringBoot整合多数据源的巨坑一
  7. pytorch: torch.Tensor.view ------ reshape
  8. 关于解决vivado error:add_1 must be in range [-1,DEPTH-1] 问题
  9. Android 科大讯飞、语音听写集成指南
  10. 卸载oracle11g全部,完全卸载oracle11g步骤:
  11. 购物网站,网上购物系统,网上商城系统毕业设计
  12. PHP+jQuery年会在线拍照抽奖
  13. Kindle3 字典安装
  14. 新能源整车控制器VCU开发过程分享
  15. html5 sha1,js-sha1加密
  16. 嵌入式软件工程师对linux要求,嵌入式软件工程师的必备知识
  17. android模拟器 adb 命令,安卓模拟器下 使用ADB命令
  18. 小生意同样能赚大钱,卖豆芽都能一年存20多万?你怎么看?
  19. Squared Error 数学
  20. 西安理工大学计算机科学与工程学院官网,罗靖-西安理工大学计算机科学与工程学院...

热门文章

  1. cargo build failed: SSL connect error (schannel: failed to receive handshake, SSL/TLS connection fai
  2. Node fs同步、异步写入文件(一)
  3. 从腾讯云服务器迁移到轻量应用服务器
  4. 初识 ❤ TensorFlow |【一见倾心】
  5. zabbix通过插件percona进行监控MySQL
  6. 8、135条最全弱电智能化综合布线常用术语
  7. win10:如何设置电脑睡眠只息屏
  8. 嵌入式物联网项目实践1.1
  9. 前端面试宝典。向未来开启计划
  10. QT---实现舒尔特方格(零基础入门)