第7周 文件和数据格式化
目录
- 7.1 文件的使用
- 7.2 实例11:自动轨迹绘制
- 7.3 一维数据的格式化和处理
- 7.4 二维数据的格式化和处理
- 7.5 模块6:wordcloud库的使用
- 7.6 实例12:政府工作报告词云
7.1 文件的使用
字符串格式化:将字符串按照一定规格和式样进行规范。
数据格式化:将一组数据按照一定规格和式样进行规范:表示、存储、运算等。
文件的类型
文件的打开和关闭
文件是数据的抽象和集合。
文本文件 versus 二进制文件
#文本形式打开文件
tf = open("f.txt", "rt")
print(tf.readline())
tf.close()
#二进制形式打开文件
tf = open("f.txt", "rb")
print(tf.readline())
tf.close()
文件处理的步骤:打开-操作-关闭
<变量名> = open(<文件名>, <打开模式>)
七种文件打开模式:
r #只读模式,默认
w #覆盖写模式,
x #创建写模式,如果文件存在,则会发生异常
a #追加写模式,
b #二进制文件模式
t #文本文件模式,默认值
+ #与r/w/x/a一同使用,在原功能基础上增加同时读写功能
文件的关闭
<变量名>.close()
文件内容的读取
<f>.read(size=-1) #读入全部内容,如果给出参数,读入前size长度
<f>.readline(size=-1) #读入一行内容,如果给出参数,读入该行前size长度
<f>.readlines(hint=-1) #读入文件所有行,以每行为元素形成列表
readlines()返回字符串列表!
文件的全文本操作
遍历全文本:方法一
fname = input("请输入要打开的文件名称:")
fo = open(fname, "r")
txt = fo.read()
#对全文txt进行处理
fo.close()
遍历全文本:方法二
fname = input("请输入要打开的文件名称:")
fo = open(fname, "r")
txt = fo.read(2) #读入2个字节
while txt != "":#对txt进行处理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: #fo是文件句柄print(line)
fo.close()
数据的文件写入
<f>.write(s) #向文件写入一个字符串或字节流
<f>.writelines(lines) #将一个元素全为字符串的列表写入文件 将各个元素直接拼接
<f>.seek(offset) #改变当前文件操作指针的位置,offset含义如下: 0-文件开头 1-当前位置 2-文件结尾
数据的文件写入
fo = open("output.txt", "w+")
ls = ["中国", "法国", "美国"]
fo.writelines(ls)
fo.seek(0) #将文件处理指针移至文件开头
for line in fo:print(line)
fo.close()
7.2 实例11:自动轨迹绘制
需求:根据脚本来绘制图形。
不是写代码而是写数据绘制轨迹。
数据脚本是自动化最重要的第一步。
基本思路
步骤1:定义数据文件格式(接口)
步骤2:编写程序,根据文件接口解析参数绘制图形
步骤3:编制数据文件
第1个参数:行进距离
第2个参数:转向判断,0表示左转,1表示右转
第3个参数:转向角度
第4个参数:R通道颜色
第5个参数:G通道颜色
第6个参数:B通道颜色
#AutoTraceDraw.py
import turtle as t
t.title('自动轨迹绘制')
t.setup(800,600,0,0)
t.pencolor("red")
t.pensize(5)
#数据读取
datals = []
f = open("data.txt")
for line in f:line = line.replace("\n", "")datals.append(list(map(eval,line.split(","))))
f.close()
#自动绘制
for i in range(len(datals)):t.pencolor(datals[i][3],datals[i][4],datals[i][5])t.fd(datals[i][0])if datals[i][1]:t.right(datals[i][2])else:t.left(datals[i][2])
7.3 一维数据的格式化和处理
数据组织的维度。。。
从一个数据 到 一组数据
一维数据:由对等关系的有序或无序数据构成,采用线性方式组织。
对应列表、数组和集合等概念。
二维数据:由多个一维数据构成,是一维数据的组合形式。
多维数据:由一维或二维数据在新维度上扩展形成。
高维数据:仅利用最基本的二元关系展示数据间的复杂结构。
例如:键值对。
数据的操作周期:存储-表示-操作
一维数据的表示:
如果数据间有序,使用列表类型。
如果数据间无序,使用集合类型。
一维数据的存储:
空格分隔,不换行。
逗号分隔,不换行。
其它方式。采用特殊符号分隔。
一维数据的处理:
txt = open(fname).read()
ls = txt.split() #ls = txt.split("$")
f.close()
采用空格分隔方式将数据写入文件
ls = ['中国', '美国', '日本']
f = open(fname, 'w')
f.write(' '.join(ls)) #在列表ls中每个元素之间增加空格
#f.write('$'.join(ls)) 在列表ls中每个元素之间增加$符号
f.close()
7.4 二维数据的格式化和处理
使用列表类型
使用两层for循环遍历每一个元素
CSV: Comma-Separated Values
国际通用的一二维数据存储格式,一般.csv扩展名
每行一个一维数据,采用逗号分隔,无空行
Excel和一般编辑软件都可以读入或另存为csv文件
如果某个元素缺失,逗号仍要保留
二维数据的表头可以作为数据存储,也可以另行存储
逗号为英文半角逗号,逗号与数据之间无额外空格
二维数据的读入处理
#从CSV格式的文件中读入数据
fo = open(fname)
ls = []
for line in fo:line = line.replace("\n", "")ls.append(line.split(","))
fo.close()
ls = [[], [], []] #二维列表
f = open(fname, 'w')
for item in ls:f.write(','.join(item) + '\n')
f.close()
二维数据的逐一处理
ls = [[1,2], [3,4], [5,6]] #二维列表
for row in ls:for column in row:print(column)
7.5 模块6:wordcloud库的使用
词云以词语为基本单位,更加直观和艺术的展示文本。
pip install worldcloud
wordcloud库把词云当作一个WordCloud对象。
wordcloud.WordCloud()代表一个文本对应的词云。
可以根据文本中词语出现的频率等参数绘制词云。
绘制词云的形状、尺寸和颜色都可以设定。
wordcloud库常规方法
w = wordcloud.WordCloud()
以WordCloud对象为基础
配置参数、加载文本、输出文件
w.generate(txt) #向WordCloud对象w中加载文本txt
w.to_file(filename) #将词云输出为图形文件,.png或.jpg格式
步骤1:配置对象参数
步骤2:加载词云文本
步骤3:输出词云文件
import wordcloud
c = wordcloud.WordCloud()
c.generate("wordcloud by Python")
c.to_file("pywordcloud.png") #图片宽度默认400像素,高度为200像素
①分隔:以空格分隔单词
②统计:单词出现次数并过滤
③字体:根据统计配置字体
④布局:颜色环境尺寸
w = wordcloud.WordCloud(<参数>)width #指定词云对象生成图片的宽度,默认400像素
height #指定词云对象生成图片的高度,默认200像素
min_font_size #指定词云中字体最小字号,默认4号
max_font_size #指定词云中字体最大字号,根据高度自动调节
font_step #指定词云中字体字号的步进间隔,默认为1
font_path #指定字体文件的路径,默认None
max_words #指定词云显示的最大单词数量,默认200
stop_words #指定词云的排除词列表,即不显示的单词列表
mask #指定词云形状,默认为长方形,需要引用imread()函数
background_color #指定词云图片的背景颜色,默认为黑色
示例1:
import wordcloud
txt = "life is short, you need python"
w = wordcloud.WordCloud(background_color = "white")
w.generate(txt)
w.to_file("pywcloud.png")
示例2:
import jieba
import wordcloud
txt = "程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理。"
w = wordcloud.WordCloud(width = 1000, font_path = "msyh.tcc", height = 700)
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("pywcloud.png")
7.6 实例12:政府工作报告词云
需求:对于政府工作报告等政策文件,如何直观理解?
步骤1:读取文件、分词整理
步骤2:设置并输出词云
步骤3:观察结果,优化迭代
#GovRptWordCloudv1.py
import jieba
import wordcloud
f = open("新时代中国特色社会主义.txt", "r", encoding = "utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud(font_path = "msyh.ttc", width = 1000, height = 700, background_color = "white", max_words = 15, stopwords = ["的","和","是","在"])
w.generate(txt)
w.to_file("grwordcloud.png")
加载图片
from imageio import imread
第7周 文件和数据格式化相关推荐
- 国家精品在线开放课程“Python语言程序设计”(北理工-嵩天)-第七周文件和数据格式化 练习题
文件字符分布 问题描述: 统计附件文件的小写字母a-z的字符分布,即出现a-z字符的数量,并输出结果. ...
- 测验7: 文件和数据格式化 (第7周)
测验7: 文件和数据格式化 (第7周) 文章目录 测验7: 文件和数据格式化 (第7周) 单选题 程序题 这是python123官网上联合MOOC的Python程序设计(第10期)答案 单选题 第五题 ...
- Day06-Python文件和数据格式化
简介 此系列主要记录若干年前学习Python的心路历程,本文为第六章(同时也是基础内容的最后一章)Python文件和数据格式化.经过以上学习应该已经掌握Python的基本编程. 文件的使用: 数据的抽 ...
- Python语法基础(U.7)-文件和数据格式化
为mooc网站的北京理工大学的 嵩天 .黄天羽 .礼欣 三位老师的课程笔记. 欢迎starGITHUB可下载源码 7 文件和数据格式化 7.1 文件的使用 7.2 实例11:自动轨迹绘制 7.3 一维 ...
- python第七章文件和数据格式化选择题_《计算机二级Python语言程序设计考试》第7章:文件和数据格式化...
注明:本系列课程专为全国计算机等级考试二级 Python 语言程序设计考试服务 目录 考纲考点 文件的使用: 文件打开.关闭和读写 数据组织的维度:一维数据和二维数据 一维数据的处理:表示.存储和处理 ...
- 计算机二级python 知识点篇(文件和数据格式化)
计算机二级python 知识点篇(文件和数据格式化) 考纲考点 文件的使用: 文件打开. 关闭和读写 数据组织的维度: 一维数据和二维数据 一维数据的处理: 表示. 存储和处理 二维数据的处理: 表示 ...
- 第 7 章 文件和数据格式化
整理的文章内容主要来源为高教版<计算机等级考试二级 Python>教程视频讲义,并且更正了原讲义中的错误的地方. 专栏文章索引如下: 考试大纲 第 1 章 程序设计基本方法 第 2 章 P ...
- 北理工嵩天Python语言程序设计笔记(8 文件和数据格式化)
前言 本文是对<北理工 嵩天/黄天宇/礼欣 Python语言程序设计>的学习笔记,供自己查阅使用. 文章目录 北理工嵩天Python语言程序设计笔记(目录) 北理工嵩天Python语言程序 ...
- 05 文件和数据格式化
05 文件和数据格式化 一.基本概念 二.文件的编码 1.ANSI编码 2.Unicode编码 3.UTF-8编码 4.Unicode big endian编码 5.Python语言的文件编码 三.文 ...
- 嵩天老师python123测验7: 文件和数据格式化 (第7周)
1 以下选项对文件描述错误的是: ...
最新文章
- Java中取两位小数
- 数据库练习题(一)创建表格并做相应的查询
- Oracle 9i 的安装(图解)
- word2003计算机考试题,[2018职称计算机Word2003考前练习题] 2018年职称计算机考试练习题库...
- anaconda如何装python_如何在已安装Python条件下,安装Anaconda,,并将原有Python添加到Anaconda中...
- java粒子群优化算法_粒子群优化算法的JAVA实现
- php数组堂each怎么保存变量,php – 数组和foreach循环可以更有效地处理输入变量...
- Mysql type字段值1改为2,2改为1
- HTML页面多语言切换
- 台式计算机有乱码如何解决,电脑乱码怎么办,开机乱码解决方法
- 基尼指数 Gini Index
- 记中国著名佛学书法家——释心仁
- MIUI9开发版提前完成全系机型适配,近50款小米手机可升级
- HIT深入理解计算机系统大作业
- 最新数据!国内5G手机出货已超29万部
- ⾯板数据分析、空间计量、空间杜宾模型学习资料
- 手机kakao聊天能自动翻译 WhatsApp翻译 实时翻译
- 【数学】有效的正方形 勾股定理
- ON1 Effects图形工具领域,LUT和预设的色彩工作站
- linux质控命令,质控软件 fastp