栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python北理工 第七章 文件和数据格式化

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python北理工 第七章 文件和数据格式化

outline

  • 7.1 文件的使用
  • 7.2 实例11:自动轨迹绘制
  • 7.3 一维数据的格式化和处理
  • 7.4 二维数据的格式化和处理
  • 7.5 模块6:wordcloud库的使用
  • 7.6 实例12:政府工作报告词云
  • 方法论:从py角度理解的文件和数据表示
  • 实践能力:学会编写带有文件输入输出的程序
7.1 文件的使用 1.文件的类型

文件 是数据的抽象和集合

  • 文件是存储在辅助存储器上的数据序列;
  • 文件是数据存储的一种形式;
  • 文件展现形态:文本文件 和 二进制文件。

文本文件 vs. 二进制文件

  • 文本文件 和 二进制文件 只是文件的展示方式;
  • 本质上,所有文件都是二进制形式存储;
  • 形式上,所有文件采用两种方式展示。
文本文件

文件是数据的抽象和集合

  • 由 单一特定编码 组成的文件,如 utf-8编码;
  • 由于存在编码,也被看成是存储着的长字符串;
  • 适用于例如:.txt文件、.py文件。
二进制文件

文件是数据的抽象和集合

  • 直接由 比特0和1组成,没有统一字符编码;
  • 一般存在二进制0和1的组织结构,即文件格式;
  • 适用于例如:.png文件、.avi文件等。

 文本格式可以更好的理解信息,而二进制形式是最原始的存储格式。

# 1.文本形式打开文件
tf = open("f.txt", "rt", encoding="utf-8")
print(tf.readline())
tf.close()
# "中国是个伟大的国家!"

# 2.二进制形式打开文件
bf = open("f.txt", "rb")
print(bf.readline())
bf.close()
# b'"xe4xb8xadxe5x9bxbdxe6x98xafxe4xb8xaaxe4xbcx9fxe5xa4xa7xe7x9ax84xe5x9bxbdxe5xaexb6xefxbcx81"'

2. 文件的打开和关闭

 

文件的打开 

 

 路径:绝对路径和相对路径

文件打开模式
文件的打开模式描述
'r'只读模式,默认值,如果文件不存在,返回 FileNotFoundError
'w'覆盖写模式,文件不存在则创建,存在则完全覆盖
'x'创建写模式,文件不存在则创建,存在则返回FileExistsError
'a'追加写模式,文件不存在则创建,存在则在文件最后追加内容
'b'二进制文件模式
't'文本文件模式,默认值
'+'与 r/w/x/a 一同使用,在原功能基础上增加同时读写功能
f = open("f.txt")		# 文本形式、只读模式、默认值
f = open("f.txt", "rt") # 文本形式、只读模式、同默认值
f = oepn("f.txt", "w")  # 文本形式、覆盖写模式
f = oepn("f.txt", "a+") # 文本形式、追加写模式+读文件
f = oepn("f.txt", "x")  # 文本形式、创建写形式
f = oepn("f.txt", "b")  # 二进制形式、只读模式
f = oepn("f.txt", "wb") # 二进制形式、覆盖写模式
文件的关闭

最好写上,但是忘记写的话,在程序退出之后,py会默认关闭文件 

3. 文件内容的读取
操作方法描述
.read(size=-1)

读入全部内容,如果给出参数,读入前size长度

>>>s = f.read(2)

中国

.readline(size=-1)

读入一行内容,如果给出参数,读入前size长度

>>>s = f.readline()

中国是一个伟大的国家!

.readlines(hint=-1)

读入文件所有行,以每行为元素形成列表

如果给出参数,读入前 hint 行

>>>s = f.readlines()

['中国是一个伟大的国家']

文件的全文本操作

遍历全文本:方法一

fname = input("请输入要打开的文件名称:")
fo = open(fname, "r")
txt = fo.read()
# deal
fo.close()

 遍历全文本:方法二(按数量读入,逐步处理)

fname = input("请输入要打开的文件名称:")
fo = open(fname, "r")
txt = fo.read(2)
while txt != "":
	# deal
	txt = fo.read(2)
fo.close()

文件的逐行操作

逐行遍历文件:方法一(一次读入,分行处理)

fname = input("请输入要打开的文件名称:")
fo = open(fname, "r")
for line in fo.readlines():
	print(line)
fo.close()

逐行遍历文件:方法二(分行读入,逐行处理)

fname = input("请输入要打开的文件名称:")
fo = open(fname, "r")
for line in fo:
	print(line)
fo.close
4. 数据的文件写入
操作方法描述
.write(s)

向文件写入一个字符串 或 字节流

>>>f.write("中国是一个伟大的国家!")

.writelines(lines)

将一个元素全为字符串的列表写入文件

>>>ls = ["中国", "法国", "美国"]

>>>f.writelines(ls)

中国法国美国(直接拼接)

.seek(offset)

改变当前文件操作指针的位置

offset含义:0-文件开头;1-当前位置;2-文件结尾

>>>f.seek(0)

单元小结:
  • 文件的使用方式:打开-操作-关闭;
  • 文本文件 & 二进制文件,open(,) 和 close()
  • 文件内容的读取:.read(),.readline(),.readlines()
  • 数据的文件写入:.write(),.writelines(),.seek()
7.2 实例11:自动轨迹绘制

7.3 一维数据的格式化和处理 1.数据组织的维度

从一个数据 到 一组数据

维度:数据的组织方式

一维数据

由对等关系的有序 或 无序数据构成,采用线性方式组织

3.1413, 3.1398, 3.1404, 3.1401, 3.1349, 3.1376

对应列表、数组和集合等概念

二维数据

由多个一维数据构成,是一维数据的组合形式

例如表格是典型的二维数据,其中,表头是二维数据的一部分。

多维数据

由一维 或 二维数据在新维度上扩展形成

例如:中国大学排行榜这个表格在不同的时间维度

高维数据

仅利用最基本的二元关系展示数据间的复杂结构

键值对

{
	"firstName" : "Tian",
	"lastName" : "Song",
	"address" : {
				"streetAddr" : "中关村南大街5号",
				"city" : "北京市",
				"zipcode" : "100081"
			  },
	"professional" : ["Computer Networking", "Security"]
}
数据的操作周期

2. 一维数据的表示 数据间有序:列表
ls = [3.1398, 3.1349, 3.1376]

列表 类型可以表达一维有序数据;

for循环 可以遍历数据,进而对每个数据进行处理。

数据间无序:集合
st = {3.1398, 3.1349, 3.1376}

集合类型可以表达一维无序数据;

for循环可以遍历数据,进而对每个数据进行处理。

一维数据的存储 存储方式一:空格分隔
中国 美国 日本 德国 法国 英国 意大利
  • 使用一个或多个空格分隔进行存储,不换行;
  • 缺点:数据中不能存在空格
存储方式二:逗号分隔
中国,美国,日本,德国,法国,英国,意大利
  • 使用英文半角逗号分隔数据进行存储,不换行;
  • 缺点:数据中不能有英文逗号。
存储方式三:其他方式
中国$美国$日本$德国$法国$英国$意大利
  • 使用其他符号 或 符号组合 分隔,建议采用特殊符号;
  • 缺点:需要根据数据特点定义,通用性较差。
一维数据的处理

从 空格 分隔的文件中读入数据

# 中国 美国 日本 德国 法国 英国 意大利
txt = open(fname).read()
ls = txt.split()
f.close()
# 中国$美国$日本$德国$法国$英国$意大利
txt = open(fname).read()
ls = txt.split("$")
f.close()

采用空格分隔方式 将数据写入文件

ls = ['中国', "美国", "日本"]
f = open(fname, 'w')
f.write(' '.join(ls))
f.close()

采用特殊分隔方式将数据写入文件

ls = ['中国', '美国', '日本']
f = open(fname, 'w')
f.write('$'.join(ls))
单元小结
  • 数据的维度:一维、二维、多维、高维
  • 一维数据的表示:列表类型(有序) 和 集合类型(无序)
  • 一维数据的存储:空格分隔、逗号分隔、特殊符号分隔
  • 一维数据的处理:字符串方法 .split() 和 .join()
7.4 二维数据的格式化和处理

单元小结:

  • 二维数据的表示:列表类型,其中每个元素也是一个列表;
  • CSV格式:逗号分隔表示一维,按行分隔表示二维;
  • 二维数据的处理:for循环 + .split() 和 join()

7.5 模块6:wordcloud库的使用

wordcloud是优秀的词云展示第三方库

词云以词语为基本单位,更加直观和艺术的展示文本

安装

 

7.6 实例12:政府工作报告词云

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/915867.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号