Python基础——PyCharm版本——第八章、文件I/O(核心3、csv和excel解析)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Python基础——PyCharm版本——第八章、文件I/O(核心3、csv和excel解析)

CSV前言

CSV(Comma-Separated Values,中文逗号分隔值或字符分隔值)是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用,也应用于程序之间转移表格数据。


CSV并不是一种单一的、定义明确的格式,泛指具有以下特征的任何文件: 纯文本,使用某个字符集,如ASCII、Unicode、EBCDIC或GB2312。 由记录组成(典型的是每行一条记录)。 每条记录被分隔符分隔为字段(典型分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格)。 每条记录都有同样的字段序列。


数据格式

1 王语嫣 16 琅嬛福地,神仙姐姐
2 小龙女 17 终南山下,活死人墓,神雕侠侣,绝世江湖
3 赵灵儿 15 灵蛇岛,逍遥哥哥的小太妹

image.png


读取操作: (编码格式,通常使用utf-8,如果文件编码不符会报错)

import csv
# 文件获取
file = open('test.csv', 'r', encoding="utf-8")
# 内容读取
list1 = csv.reader(file)
# 信息遍历
for line in list1:
    for item in line:
        print(item, end=" ")
    print()

写入操作:

import csv
# 文件获取
file = open('test.csv', 'w+', encoding="utf-8")
# 写入操作
writer = csv.writer(file)
# 按照行写入
writer.writerow(['1', '王语嫣', '16', "琅嬛福地,神仙姐姐"])
data = [('2','小龙女', '17', '终南山下,活死人墓,神雕侠侣,绝世江湖'),
        ('3','赵灵儿', '15', '灵蛇岛,逍遥哥哥的小太妹')]
# 写入多行记录
writer.writerows(data)
# 刷新文件
file.flush()
# 关闭文件流
file.close()


EXCEL前言

Python读写Excel文档需要安装和使用xlrd模块,Excel文件写入需要使用xlwt模块。


写入XLS

这里用到的包是:【import xlwt】


需要进行下载:【pip install xlwt】


import xlwt
# 创建内容的样式对象,包括字体样式以及数字的格式
wb = xlwt.Workbook()
ws = wb.add_sheet('Sheet1')  # 添加一个sheet
# 需要将中文通过u""的形式转换为unicode编码
data = [[u"编号", u"姓名", u"年龄", u"简介"],
        [1, u"王语嫣", 16, u"琅嬛福地,神仙姐姐"],
        [2, u"小龙女", 17, u"活死人墓,冰山美人"],
        [3, u"赵灵儿", 31, u"灵蛇岛上,戚戚艾艾"]
        ]
for i in range(0, data.__len__()):  # 循环遍历每一行
    for j in range(0, data[i].__len__()):  # 循环遍历第i行的每一列
        ws.write(i, j, data[i][j])
wb.save("test.xls")


image.png

image.png


能确定生成了【test.xls】文件,这里别写【xlsx】,因为【xlwt】不支持【xlsx】操作。


读取XLS

这里用到的包是:【import xlrd】


需要进行下载:【pip install xlrd】



image.png

测试表格(刚刚通过【xlwt】生成):



image.png

import xlrd
workbook = xlrd.open_workbook('test.xls')  # 打开Excel文件读取数据
print(workbook.sheet_names())  # 获取所有sheet
# sheet2 = workbook.sheet_names()[0] #第一种方式,根据下标获取
sheet = workbook.sheet_by_index(0)  # 第二种方式,根据sheet索引获取sheet对象,索引从0开始
sheet = workbook.sheet_by_name('Sheet1')  # 第三种方式,根据sheet名称获取sheet对象
print(sheet.name, sheet.nrows, sheet.ncols)  # sheet的名称、行数和列数
# 获取整行和整列的值(数组)
rows = sheet.row_values(2)  # 获取第三行内容
cols = sheet.col_values(2)  # 获取第三列内容
print(str(rows), '\n', cols)
# 获取单元格内容
print(sheet.cell(1, 0).value, end=" ")
print(sheet.cell_value(1, 0), end=" ")
print(sheet.row(1)[0].value, end=" ")
print(sheet.cell(1, 0).ctype)  # 获取单元格内容的数据类型
print("\n--------------------------------------\n")
# 遍历
for row in sheet:
    print(row[0], row[1], row[2], row[3])

image.png

相关文章
|
12天前
|
IDE 测试技术 项目管理
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
PyCharm是由JetBrains开发的Python集成开发环境(IDE),专为Python开发者设计,支持Web开发、调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试和版本控制等功能。它有专业版、教育版和社区版三个版本,其中社区版免费且适合个人和小型团队使用,包含基本的Python开发功能。安装PyCharm前需先安装Python解释器,并配置环境变量。通过简单的步骤即可在PyCharm中创建并运行Python项目,如输出“Hello World”。
123 12
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
|
2月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
170 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
2月前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分到不同的工作表中。本文通过一个示例代码展示了如何生成一个包含总成绩表和三个班级表的Excel文件。代码首先创建了一个包含学生姓名、班级和各科成绩的数据框,然后按班级分组,将每个班级的数据分别写入不同的工作表。最后,生成的Excel文件将包含四个工作表,分别为总成绩表和三个班级的成绩表。
46 6
按条件将Excel文件拆分到不同的工作表
|
2月前
|
Python
批量将不同的工作簿合并到同一个Excel文件
本文介绍如何使用Python的`pandas`库批量合并不同工作簿至同一Excel文件。通过模拟生成三个班级的成绩数据,分别保存为Excel文件,再将这些文件合并成一个包含所有班级成绩的总成绩单。步骤包括安装必要库、生成数据、保存与合并工作簿。
64 6
|
2月前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分为多个工作表。本文通过一个具体示例,展示了如何根据学生班级将成绩数据拆分到不同的工作表中,并生成一个包含总成绩表和各班级成绩表的Excel文件。代码简洁明了,适合初学者学习和应用。
59 6
|
2月前
|
数据可视化 搜索推荐 项目管理
一分钟解决Excel多人协作的版本混乱问题
多人协同编辑Excel彻底解决了传统多人编辑时的版本混乱问题。通过云端实时同步,团队成员可以同时更新同一表格,避免了邮件传递和手动合并的繁琐。实时协作不仅提升了效率,还防止了版本冲突。Excel的“更改历史记录”功能支持查看和回滚操作,确保错误可追溯。
|
3月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
47 1
|
3月前
|
API 数据库 开发者
探索Python中的异步编程,打造高效I/O处理
探索Python中的异步编程,打造高效I/O处理
41 0
|
3月前
|
调度 数据库 Python
掌握Python中的异步编程,提升I/O密集型任务的性能
掌握Python中的异步编程,提升I/O密集型任务的性能
57 0
|
3月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
124 2