当前位置: 首页 > news >正文

Python 程序设计讲义(66):Python 的文件操作——数据的处理

Python 程序设计讲义(66):Python 的文件操作——数据的处理

目录

  • Python 程序设计讲义(66):Python 的文件操作——数据的处理
    • 一、一维数据的存储
        • 1、分隔元素
        • 2、`CSV`文件格式
    • 二、二维数据的处理
        • 1、二维数据的表示
        • 2、二维数据的存储
        • 3、二维数据的读取

数据在计算机处理之前需要进行一定的组织,用来表示之间的基本关系和逻辑。根据数据关系的不同,这些被组织的数据可以分为一维数据和二维数据。

一维数据采用线性方式组织,和数学中的数组相似,由有序或无序数据构成。

二维数据也称表格数据,使用二维表格方式组织,和数学中的矩阵类似。常见的表格都属于二维数据。

一、一维数据的存储

一维数据是最简单的数据组织类型,采用线性方式组织数据,类似于数组和集合。

一维数据使用列表表示。一维数据中的信息可以保存到文件中,通过文件进行存储。

1、分隔元素

将一维数据存储到文件中,需要考虑每个元素之间使用的分隔符。在Python中提供四种分隔方式。

(1)使用空格分隔元素

例如:

经济与管理学院 信息工程学院 艺术学院 计算机学院 农学院 文法学院

(2)使用英文逗号分隔元素

例如:

经济与管理学院,信息工程学院,艺术学院,计算机学院,农学院,文法学院

(3)使用换行符分隔元素

例如:

经济与管理学院
信息工程学院
艺术学院
计算机学院
农学院
文法学院

(4)使用自定义符号分隔元素

例如:

经济与管理学院:信息工程学院:艺术学院:计算机学院:农学院:文法学院
2、CSV文件格式

在上述的四种分隔元素中,使用逗号进行分隔的存储格式称为CSV格式。大部分编辑器都可以直接读取或保存为CSV格式文件。

例如:把上面的信息保存为CSV格式文件

程序代码如下:

l1=['经济与管理学院','信息工程学院','艺术学院','计算机学院','农学院','文法学院']
s=",".join(l1)  #将逗号插入到列表的各个元素之间,返回一个新字符串
with open(r"d:\python示例\college.csv","w",encoding="GBK") as f:f.write(s)
with open(r"d:\python示例\college.csv","r",encoding="GBK") as f:print(f.read())f.seek(0,0)print(f.read().split(','))程序的运行结果为:
经济与管理学院,信息工程学院,艺术学院,计算机学院,农学院,文法学院
['经济与管理学院', '信息工程学院', '艺术学院', '计算机学院', '农学院', '文法学院']

在磁盘上查看文件信息,如下图所示:

在这里插入图片描述

使用Excel打开文件college,结果如下图所示:

在这里插入图片描述

二、二维数据的处理

二维数据由多个一维数据构成,可以看作是一维数据的组合形式。

二维数据也可以使用列表来表示,列表中的每个元素又是一个列表类型。

1、二维数据的表示

例如:有如下表中的数据

学号姓名性别年龄班级
20230214101张晶晶20信管231
20230214102王海涛21信管231
20230214103马远飞21信管232
20230214104赵丽萍21信管232

上面表格中的数据可以使用如下的列表表示:

list=[["20230214101","张晶晶","女","20","信管231"],["20230214102","王海涛","男","21","信管231"],["20230214103","马远飞","男","21","信管232"],["20230214104","赵丽萍","女","21","信管232"]
]

为了便于处理,把列表中的所有数据都转化为字符串。

2、二维数据的存储

二维数据是多个一维数据的组合,因此二维数据也可以使用CSV文件格式存储。

例如:把上面的信息保存为CSV格式文件

程序代码如下:

![0573](D:\0工作文档\typora文档\0573.png)l1=[["20230214101","张晶晶","女","20","信管231"],["20230214102","王海涛","男","21","信管231"],["20230214103","马远飞","男","21","信管232"],["20230214104","赵丽萍","女","21","信管232"]
]
with open(r"d:\python示例\stu.csv","w",encoding="GBK") as f:for row in l1:s=",".join(row)f.write(s+'\n')print("文件存储完毕")程序的运行结果为:
文件存储完毕

在磁盘上查看文件信息,如下图所示:

在这里插入图片描述

使用Excel打开文件college,结果如下图所示:

在这里插入图片描述

3、二维数据的读取

当读取CSV格式文件中的二维数据时,也需要对数据进行处理,才能正确地显示二维数据。

例如:

with open(r"d:\python示例\stu.csv","r",encoding="GBK") as f:s=f.readlines()l1=[]for item in s:l1.append(item.strip().split(","))print(l1)程序的运行结果为:
[['20230214101', '张晶晶', '女', '20', '信管231'], ['20230214102', '王海涛', '男', '21', '信管231'], ['20230214103', '马远飞', '男', '21', '信管232'], ['20230214104', '赵丽萍', '女', '21', '信管232']]
http://www.dtcms.com/a/322341.html

相关文章:

  • 多模态RAG赛题实战--Datawhale AI夏令营
  • 计算BERT-BASE参数量
  • 基于windows10/11的可用的自动日记启动脚本
  • Irix HDR Pro:专业级 HDR 图像处理软件
  • STM32H503不同GPIO速度配置(HAL库)对应的最高速度
  • Linux网络转发系统框架分析
  • 栈和队列应用实操
  • RAGFoundry:面向检索增强生成的模块化增强框架
  • 深入剖析Spring MVC核心原理:从请求到响应的魔法解密
  • 如何在linux(CentOS7)上面安装 jenkins?
  • linux php版本降级,dnf版本控制
  • 【LeetCode 热题 100】(五)普通数组
  • 贪心----1.买卖股票的最佳时机
  • 【JS-8-Json】深入理解JSON语法及Java中的JSON操作
  • AutoML 的下半场——从“模型选择”到“端到端业务闭环”
  • 集成电路学习:什么是RQT图形用户界面工具
  • USRP X310 X410 参数对比
  • 区块链密码学简介
  • 【洛谷题单】--分支结构(三)
  • Meta AI水印计划的致命缺陷——IEEE Spectrum深度文献精读
  • CodeBuddy AI·编程新维度
  • GitHub第三方登录全解析:OAuth 2.0流程详解(适合初学者)
  • C++实现MATLAB矩阵计算程序
  • 计算机网络:深入了解CIDR地址块如何利用VLSM进行子网划分的过程
  • Kotlin反射详解
  • 学习Java的Day28
  • STM32CubeMX(十三)FatFs文件系统(SPI驱动W25Qxx)
  • 软考 系统架构设计师系列知识点之杂项集萃(119)
  • 传输线模拟经验谈
  • 计算机网络:CIDR地址块如何划分子网