IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python北理工 第七章 文件和数据格式化 -> 正文阅读

[Python知识库]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'"\xe4\xb8\xad\xe5\x9b\xbd\xe6\x98\xaf\xe4\xb8\xaa\xe4\xbc\x9f\xe5\xa4\xa7\xe7\x9a\x84\xe5\x9b\xbd\xe5\xae\xb6\xef\xbc\x81"'

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. 文件内容的读取

操作方法描述
<f>.read(size=-1)

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

>>>s = f.read(2)

中国

<f>.readline(size=-1)

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

>>>s = f.readline()

中国是一个伟大的国家!

<f>.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. 数据的文件写入

操作方法描述
<f>.write(s)

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

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

<f>.writelines(lines)

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

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

>>>f.writelines(ls)

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

<f>.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:政府工作报告词云

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 18:55:28  更:2022-05-21 18:56:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 14:40:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码