第七章 文件和数据格式化

这篇具有很好参考价值的文章主要介绍了第七章 文件和数据格式化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第七章 文件和数据格式化

7.1 文件的使用

文件时存储在辅助存储器上的一组数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象。文件包括文本文件和二进制文件两种类型。

7.1.1 文件的类型

文本文件一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示和阅读。

二进制文件直接由比特0和比特1组成,没有统一的字符编码,文本内部数据的组织格式与文件用途有关。二进制是信息按照非字符但有特定格式形成的文件,例如png格式的图片文件、avi格式的视频文件。

二进制文件和文本文件最主要的区别在于是否有统一的字符编码。

无论文件创建为文本文件或者二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,但打开后的操作不同。

# 一个文本文件,其内容为“计算机等级考试”,采用文本方式打开
# 注意:文本文件与Python程序文件放在同一个目录下
file = open("1.txt", mode="rt", encoding="UTF-8")
read_content = file.readline()
print(read_content)
file.close()

# 运行结果
计算机等级考试

# 一个文本文件,其内容为“计算机等级考试”,采用二进制方式打开
file = open("1.txt", mode="rb")
read_content = file.readline()
print(read_content)
file.close()

# 运行结果
b'\xe8\xae\xa1\xe7\xae\x97\xe6\x9c\xba\xe7\xad\x89\xe7\xba\xa7\xe8\x80\x83\xe8\xaf\x95'

采用文本方式读入文件,文件经过编码形成字符串,打印出有含义的字符;采用二进制方式打开文件,文件被解析为字节流。由于存在编码,字符串中的一个字符由多个字节表示。

7.1.2 文件的打开和关闭

Python对文本文件和二进制文件采用统一的操作步骤,即”打开—操作—关闭“,如下图所示。操作系统中的文件默认处于存储状态,首先需要将其打开,使得当前程序有权操作这个文件,打开不存在的文件系统可以创建这个文件。打开后的文件处于占用状态,此时,另一个进程不能操作这个文件。可以同做一组方式读取文件的内容或向文件写入内容,操作之后需要将文件关闭,关闭将释放对文件的控制是文件恢复或存储状态,此时,另一个进程能够操作文件。

第七章 文件和数据格式化

Python通过open()函数打开一个文件,并返回一个操作这个文件的变量,语法格式如下:

<变量名> = open(<文件路径及文件名>,<打开模式>)

open()函数提供7种基本的打开模式:

打开模式 含义
r 只读模式,如果文件不存在,返回异常FileNotFoundError,默认值
w 覆盖写模式,文件不存在则创建,存在则完全覆盖原文件
x 创建写模式,文件不存在则创建,存在则返回异常FileExistsError
a 追加写模式,文件不存在则创建,存在则在原文件最后追加内容
b 二进制文件模式
t 文本文件模式,默认值
+ 与/r/w/x/a一同使用,在原功能基础上增加同时读写功能

打开模式使用字符串方式表示,根据字符串定义,单引号或者双引号均可。上述打开模式中,‘x’、‘w’、‘x’、‘a’可以和‘b’、‘t’、‘+’组合使用,形成既表达读写又表达文件模式的方式。

打开文件有一些常用组合,使用方式如下:

# 以文本方式只读打开一个文件,读入后不能对文件进行修改
<变量名> = open(<文件名>, 'r')<变量名> = open(<文件名>)

# 以文本方式可读写的打开一个文件,可以读入并修改文件
<变量名> = open(<文件名>, 'r+')

# 以文本方式打开一个空文件,准备写入一批内容,并保存为新文件
<变量名> = open(<文件名>, 'w')

# 以文本方式打开一个空文件或已有的文件,追加形式写入一批内容,更新原文件
<变量名> = open(<文件名>, 'a+')

# 以二进制方式只读打开一个文件,读入后不能对文件进行修改
<变量名> = open(<文件名>, 'rb')

文件试用结束后要用close()方法关闭,释放文件的使用授权,语法格式如下:

<变量名>.close()
7.1.3 文件的读写

根据打开方式不同,文件读写也会根据文本文件或二进制打开方式有所不同。

常用的文件读取方法如下:

方法 含义
f.read(size=-1) 从文件中读入整个文件内容,参数可选。如果给出,读入前size长度的字符串或字节流
f.readline(size=-1) 从文件中读入一行内容,参数可选。如果给出,读入该行size长度的字符串或字节流
f.readlines(hint=-1) 从文件中读入所有行,以每行为元素形成一个列表。参数可选,如果给出,读入hint行
f.seek(offset) 改变当前文件操作指针的为啥,offset的值:0为文件开头,2为文件结尾

从文本文件逐行读入内容并进行处理是一个基本的文件操作需求。文本文件可以看成是由行组成的组合类型,因此,可以使用遍历循环逐行遍历文件,语法格式如下:

file = open(<文件路径及名称>, "r")
for line in file:
	print(line)	# 处理一行数据 
f.close

常用的文件写入方法如下:

方法 含义
f.write(s) 向文件写入一个字符串或字节流
f.writelines(lines) 将一个元素为字符串的列表整体写入文件

f.write(s)向文件写入字符串s,每次写入后,将会记录一个写入指针。放方法可以反复调用,再写入指针后分批写入内容,直至文件被关闭。

使用f.write(s)时,要显示的使用’\n’对写入文本进行分行,如果不进行分行,每次写入的字符串会被连接起来。

f = open("c.txt", "w")
f.write('新年都未有芳华\n')
f.write('二月初惊见草芽\n')
f.write('白雪却嫌春色晚\n')
f.write('故穿庭树作飞花\n')
f.close()

f.writelines(lines)直接将列表类型的个元素连接起来写入文件f

ls = ['新年都未有芳华\n','二月初惊见草芽\n','白雪却嫌春色晚\n','故穿庭树作飞花\n']
f = open("c.txt", "w")
f.writelines(ls)
f.close()

上述代码运行结果皆为:

新年都未有芳华
二月初惊见草芽
白雪却嫌春色晚
故穿庭树作飞花
7.2 数据组织的维度

一组数据在被计算机处理前需要进行一定的组织,表面数据之间的基本关系,进而形成”数据的维度“。根据数据的关系不同,数据组织可以分为:一维数据、二维数据和高维数据

7.2.1 一维数据

一维数据由对等关系的有序或无需数据构成,采用线性方式组织,对应于数学中数组的概念。例如:中国的直辖市列表即可表示为一维数据,一维数据具有线性特点。

7.2.2 二维数据

二维数据,也称表格数据,有关联关系数据构成,采用二维表格方式组织,对应于数学中的矩阵,常见的表格都属于二维数据。例如:国家统计局发布的居民消费价格指数是二维数据。

7.2.3 高维数据

高维数据由键值对类型的数据构成,采用对象方式组织,可以多层嵌套。

高维数据在Web系统中十分常用,作为当今Internet组织内容的主要方式,高维数据衍生出HTML、XML、JSON等具体数据组织的语法结构。

7.3 一维数据的处理
7.3.1 一维数据的表示

一维数据是最简单的数据组织类型,由于是线性结构,在Python语言中主要采用列表形式表示。

一维数据的文件存储有多种方式,总体思路是采用特殊字符分隔各数据。采用存储方法包括4种:

(1)采用空格分隔元素,例如:

北京	上海	天津	重庆

(2)采用逗号分隔元素,例如:

北京,上海,天津,重庆

(3)采用换行分隔元素,例如:

北京
上海
天津
重庆

(4)其他特殊符号分隔,以分号分隔为例,例如:文章来源地址https://www.toymoban.com/news/detail-468063.html

到了这里,关于第七章 文件和数据格式化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据结构与算法】第七章-图【期末复习】

    图:有向图、网,无向图、网。 顶点 边:有向图图称作弧,分弧头弧尾。 依附:边依附点,边和点关联 邻接:点邻接点 度:点关联的边的数目 完全图: 无向: C n 2 C_n^2 C n 2 ​ 条边; 有向: 2 C n 2 2C_n^2 2 C n 2 ​ 条边 连通:若干结点互相可以通信,用手提起一个结点可以顺

    2024年02月01日
    浏览(60)
  • 计算机操作系统第四版第七章文件管理—课后习题答案

        数据项:是最低级的数据组织形式,可以分为两种类型:基本数据项和组合数据项。基本数据项是用于描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,又称为字段。组合数据项是由若干个基本数据项组成的,简称组项。 记录:记录是一组

    2024年02月03日
    浏览(60)
  • 大数据技术原理与应用(第七章Zookeeper测试)

    一、选择题 1.Zookeeper服务端默认的对外服务端口是? A.8088 B.3888 C.2181 D.2888 2.Zookeeper生产环境一般采用多少台机器组成集群? A.1 B.3 C.5 D.奇数台(且大于1) 3.下面就Zookeeper的配置文件zoo.cfg的一部分,请问initLimit表示的含义是? A.Leader-Follower初始通信时限 B.Leader-Follower同步通信时

    2024年02月12日
    浏览(46)
  • 数据结构与算法分析 第七章 串、数组和广义表 作业讲解

     参考教材: 《数据结构(C语言版 第2版)》 严蔚敏,李冬梅,吴伟民编著,人民邮电出版社,2022年版。 截图未标明出处均为原创或取自《数据结构(C语言版 第2版)》~   本文对应的作业题讲解视频:   数据结构与算法分析作业讲解视频合集 https://www.bilibili.com/video/BV1N

    2024年02月04日
    浏览(48)
  • 数据结构 | 第七章:数组和矩阵 | 行主映射和列主映射 | 稀疏矩阵

    7.1.1 抽象数据类型 7.1.2 C++数组的索引 K维数组的索引(或下标) [ i 1 ] [ i 2 ] [ i 3 ] . . . [ i k ] [i_1][i_2][i_3]...[i_k] [ i 1 ​ ] [ i 2 ​ ] [ i 3 ​ ] ... [ i k ​ ] k维数组创建: int score [ u 1 ] [ u 2 ] [ u 3 ] . . . [ u k ] [u_1][u_2][u_3]...[u_k] [ u 1 ​ ] [ u 2 ​ ] [ u 3 ​ ] ... [ u k ​ ] ( u i u_i u i ​

    2024年01月16日
    浏览(52)
  • 《移动互联网技术》 第七章 数据存取: 掌握File、SharePreferences、SQLite和ContentProvider四种数据存取方式

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月12日
    浏览(40)
  • 三星U盘格式化后数据不见了?3个方法帮您找回珍贵文件

    三星u盘格式化后如何恢复数据?如果您误对三星U盘进行了格式化操作,并且重要的数据被删除了,您可能会觉得手足无措。但是不要担心,您仍然有很大的机会将数据恢复回来。而在找回数据之前您需要做的一件事就是确保不写入数据到U盘中,因为写入操作有可能会覆盖已

    2024年02月06日
    浏览(35)
  • 电脑硬盘文件数据误删除/格式化为什么可以恢复? 怎么恢复?谈谈文件删除与恢复背后的原理

    主页 : 元存储的博客_CSDN博客 依公开知识及经验整理,如有误请留言。 个人辛苦整理,付费内容,禁止私自转载。 内容摘要 1. 硬盘数据丢失场景 2. 硬盘数据丢失可以恢复吗? 3. 数据丢失怎么恢复? 3.1 第一款、嗨格式数据恢复大师  3.2 第二款、360安全卫士 3.3 第三款、

    2024年02月09日
    浏览(63)
  • 第七章金融中介

             金融中介是通过向资金盈余者发行 间接融资合约( 如存款单),并和资金短缺者达成 间接投资合约 (发放信贷)或购买其发行的证券,在资金供求方之间融通资金,对资金跨期、跨域进行优化配置的金融机构。         金融体系由金融市场和金融中介构成,以银行业为

    2024年02月04日
    浏览(59)
  • 第七章 函数矩阵

    和矩阵函数不同的是,函数矩阵本质上是一个矩阵,是以函数作为元素的矩阵。 矩阵函数本质上是一个矩阵,是以矩阵作为自变量的函数。 函数矩阵和数字矩阵的运算法则完全相同。 不过矩阵的元素 a i j ( x ) a_{ij}(x) a ij ​ ( x ) 需要是闭区间 [ a , b ] [a,b] [ a , b ] 上的实函数

    2024年02月04日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包