python语言程序设计(MOOC 嵩天)第七章 学习笔记(0226)

您所在的位置:网站首页 python语言程序设计教程课后答案嵩天 python语言程序设计(MOOC 嵩天)第七章 学习笔记(0226)

python语言程序设计(MOOC 嵩天)第七章 学习笔记(0226)

2023-07-16 09:21| 来源: 网络整理| 查看: 265

第七章 文件和数据格式化

数据格式化:将一组数据按照一定规格和式样进行表示、储存、运算

7.1 文件的使用 7.1.1 文件的类型

文件是数据抽象的集合(辅助存储器上的数据序列) 文件的展示形态:文本文件、二进制文件 文件:由单一特定的编码组成(类似字符串) 文本:tf = open (“f.txt”,“rt”) print(tf.readline()) tf.close 二进制:bf = open (“f.txt”,“rb”) print(bf.readline()) bf.close

7.1.2 文件的打开和关闭

a.open( , ) #在python中 \ 代表转义符,所以输入绝对路径时使用 \ or / #也可以使用相对路径 #打开模式,见后 读文件: a.read(size) a.readline(size) a.readlines(hint) 写文件: a.write(s) a.writelines(lines) a.seek(offset) a.close() #.close

打开模式: ‘r’:只读(默认),若文件不存在则报错 ‘w’:覆盖写模式,文件不存在则创建,已存在则覆盖 ‘x’:创建写模式,文件不存在则创建,已存在则报错 ‘a’:追加写模式,文件不存在则创建,已存在则在最后追加内容 ‘b’:二进制 ‘t’:文本(默认) ‘+’:在原功能上增加功能,同时读写

7.1.3 文件内容的读取:

< f >.read(size):读入全部的内容,如果给出参数size的值,则读取前size个字符 < f >.readline(size):读入一行内容,如果给出参数size的值,则读取该行的前size长度的字符 < f >.readlines(hint):读入文件所有行,如果给出参数size的值,则读入前hint行(每行作为一个元素,构成列表) eg: 遍历全文本:方法一

fname = input("请输入要打开文件的名称:") fo = open(fname,"r") txt = fo.read() #一次性读入,若文件过大过于耗费资源 #对全文本txt进行处理 fo.close()

遍历全文本:方法二

fname = input("请输入要打开文件的名称:") fo = open(fname,"r") txt = fo.read(2) while txt != "" : #对 txt 进行处理 txt = fo.read(2) #按数量读入,分批处理 fo.close()

逐行遍历:方法一

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

逐行遍历:方法二

fname = input("请输入要打开文件的名称:") fo = open(fname,"r") for line in fo : #分行读入,逐行处理 #对 txt 进行处理 print (line) fo.close() 7.1.4 数据的文件写入

< f >. write (s):向文件写入一个字符串或字节流 < f >. write lines(lines):将一个元素全为字符串的列表写入文件 #写入后各元素间没有逗号、引号 < f >. seek (offset):改变当前文件操作指针的位置 0 - 文件开头 1 - 当前位置 2 - 文件末尾

fo = open("output.txt","w+") ls = ["中国","法国","美国"] fo.writelines(ls) fo.seek(0) #关键操作,若无seek函数,输出为空 for line in fo: print (line) fo.close() 7.2 自动轨迹绘制

根据脚本来绘制图形: ①定义数据文件格式(接口) ②编写程序,根据文件接口解析参数绘制图形 ③编制数据文件 式样中数据文件的格式:每行6个数字

#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(",")))) #以逗号分割,map函数对每个元素做eval,list列表化,加到ls后面 # datals,一个列表,列表中的每个元素都是列表,脚本中的每一行数据为一个元素 #自动绘制 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]: #如果i行的第1个数据为1则右转 t.right(datals[i][2]) else: t.left(datals[i][2]) 7.3 一维数据的格式化及处理

一维数据:由对等关系的有序或无序数据构成,采用线性结构组织(列表、数组、集合等概念) 二维数据:由多个一维数据构成,是一维数据的组合形式 多维数据:由一维数据或二维数据在维度上扩展形成 高维数据:仅利用最基本的二元关系,展示数据间的复杂结构 操作周期:存储(存储格式)、表示(数据类型)、操作(操作方式) (1)一维数据的表示 if 数据间有序:使用列表类型 if 数据间无序:使用集合类型 (2)一维数据的存储 空格分隔、逗号分隔、其他符号或符号组和进行分隔 (3)一维数据的处理 从文件中读入数据:

txt = open (fname).read() ls = txt.split() # split函数的参数最为关键 f.close()

将数据写入文件:

ls = ["列表内容"] txt = open(fname,"w") f.write(' ',join(ls)) # join函数前置的参数最为关键 f.close() 7.4 二维数据的格式化及处理

(1)二维数据的表示 使用二维列表:每个元素都是一个列表,代表表格中的一行或一列(使用两层for循环进行遍历) (2)CSV格式与二维数据的储存 CSV:使用逗号分隔,国际上通用的一二维数据存储格式 #每行一个一维数据,采用逗号分隔,无空行 默认约定: #如果某个元素缺失,保留逗号 #二维数据的表头可以作为数据存储,也可以另行存储 #逗号为英文半角,逗号与数据之间无需空格 一般索引习惯: #ls是一个列表,一般来说 ls [ row ] [ clumn ] 先行后列 #一般来说,外层列表存储为行,即按行存 (3)二维数据的读入处理

fo = open(read) ls = [] for line in fo: line = line.replace("/n","") ls = ls.append(line.split(",")) #ls是一个包含二维数据的二维列表 f.close()

(4)二维数据写入CSV文件

ls = [ [],[],[] ] #ls是一个包含二维数据的列表 f = open(fname,"w") for item in ls: f.write(",".join(item) + '/n') f.close()

(5)遍历二维数据元素

ls = [ [],[],[] ] #ls是一个包含二维数据的列表 for row in ls: for column in row: do... 7.5 wordcloud库的使用

#中英文词云差异:中文文本无法根据空格分词,应先用jieba分词 (1)定义 词云:将词语通过图形可视化的方式,进行直观、艺术地展示 wordcloud库把词云当作一个WordCloud对象 wordcloud.WordCloud():代表一个,文本对应的词云 #wordcloud可以根据文本中词语出现的频率等参数绘制词云 #词云的形状、尺寸、颜色都可以设定 (2)基本操作函数 w = wordcloud.WordCloud(): w.generate(txt):向WordCloud对象w中加载文本txt w.to_file(filename):将词云输出为图像文件,jpg 或 png格式 (3)词云绘制步骤 配置对象参数、加载词云文本、输出词云文件 #以空格分隔单词、统计单词出现次数并过滤、根据统计配置字号、确定颜色环境尺寸 (4)配置对象参数 w = wordcloud.WordCloud() width:指定词云对象生成图片的宽度,默认400像素 height:指定词云对象生成图片的高度,默认200像素 min_font_size:指定词云中字体的最小字号,默认4号(只出现一次的单词) max_font_size:指定词云中字体的最大字号,根据高度自动调节 font_step:指定词云中字体的步进间隔,默认为1 font_path:指定字体文件路径,默认为None max_words:指定词云显示的最大单词数量 stop_words:指定词云的排除词列表,即不显示的单词列表 backgroud_color:指定词云图片的背景颜色,默认为黑色 mask:通过给定图片的文件格式指定词云形状,默认为长方形

from scipy.misc import imread mk = imread("pic.png") w = wordcloud.WordCloud( mask=mk )

(5)中文词云实例

import wordcloud import jieba txt = "bala bala" #获得要处理的文本内容 w = wordcloud.WordCloud( width=1000,\ font_path="msyh",height=700 ) w.generate(" ".join(jieba.lcut(txt))) #使用jieba库中的lcut将txt中文本分词,保存入一个列表 #使用join函数用空格,将上述列表中的元素连接起来 #使用w.generate将文本输入词云对象w w.to_file("pywcloud.png") 7.6 政府工作报告词云

设计思路: 读取文件、分词整理;设置并输出词云;观察结果、迭代优化

#GovRptWordCloudV1.pv import wordcloud import jieba from scipy.misc import imread mask = imread("fivestar.png") f = open("新时代中国特色社会主义.txt","r",encoding="utf-8") t = f.read() f.close() ls = jieba.lcut(t) txt = " ".join(ls) #获得要处理的文本内容 w = wordcloud.WordCloud( width=1000,\ font_path="msyh",height=700,background_color="white",\ max_words=15,mask=mask ) w.generate(txt) w.to_file("grwordcloud.png")


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3