1.文本文件 vs 二进制文件

#文本形式打开文件
tf = open("f.txt", "rt")
print(tf.readline())
tf.close()
#二进制形式打开文件
bf = open("f.txt", "rb")
print(bf.readline())
bf.close()

2.文件的打开和关闭

文件的打开模式:

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

文件的关闭 x.close();

3文件内容的读取

<f>.read(size=-1)读入全部内容,如果给出参数,读入前size长度
<f>.readline(size=-1)
读入一行内容,如果给出参数,读入该行前size长度
<f>.readlines(hint=-1)读入文件所有行,以每行为元素形成列表如果给出参数,读入前hint行

4.文件的全文本操作

1)遍历全文本:方法一

fname = input("请输入要打开的文件名称:")
fo = open(fname,"r")
txt = fo.read()
#对全文txt进行处理,一次读入,统一处理
fo.close()

2)遍历全文本:方法二

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

5.文件的逐行操作

1)逐行遍历文件:方法一

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

2)逐行遍历文件:方法二

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

6.数据的文件写入

#向文件写入一个字符串或字节流<f>.write(s)#将一个元素全为字符串的列表写入文件
<f>.writelines(lines)改变当前文件操作指针的位置,offset含义如下:
0 – 文件开头; 1 – 当前位置; 2 – 文件结尾
<f>.seek(offset)

案例:

fo = open("output.txt","w+")
ls = ["中国", "法国", "美国"]
fo.writelines(ls)
for line in fo:#写入一个字符串列表print(line)
fo.close()
>>> (没有任何输出)
#写入一个字符串列表
fo = open("output.txt","w+")
ls = ["中国", "法国", "美国"]
fo.writelines(ls)
fo.seek(0)
for line in fo:print(line)
fo.close()
>>>
中国法国美国

7.自动轨迹绘制

- 步骤1:定义数据文件格式(接口)
- 步骤2:编写程序,根据文件接口解析参数绘制图形
- 步骤3:编制数据文件

#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])
data.txt:300,0,144,1,0,0300,0,144,0,1,0300,0,144,0,0,1300,0,144,1,1,0300,0,108,0,1,1184,0,72,1,0,1184,0,72,0,0,0

结果:

8.一维数据的格式化和处理

一维数据的表示

-如果数据间有序:使用列表类型
ls = [3.1398, 3.1349, 3.1376]-如果数据间无序:使用集合类型
st = {3.1398, 3.1349, 3.1376}

一维数据的存储

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

一维数据的读入处理

1)从空格分隔的文件中读入数据
#中国 美国 日本 德国 法国 英国 意大利
txt = open(fname).read()
ls = txt.split()
f.close()
>>> ls
['中国', '美国', '日本', '德国', '法国', '英国', '意大利']
2)从特殊符号分隔的文件中读入数据
#中国$美国$日本$德国$法国$英国$意大利
txt = open(fname).read()
ls = txt.split("$")
f.close()
>>> ls
['中国', '美国', '日本', '德国', '法国', '英国', '意大利']

一维数据的写入处理

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

9.二维数据的格式化和处理

列表类型可以表达二维数据 使用二维列表
[  [3.1398, 3.1349, 3.1376], [3.1413, 3.1404, 3.1401]  ]

CSV格式与二维数据存储
CSV: Comma-Separated Values
- 国际通用的一二维数据存储格式,一般.csv扩展名
- 每行一个一维数据,采用逗号分隔,无空行
- Excel和一般编辑软件都可以读入或另存为csv文件

- 如果某个元素缺失,逗号仍要保留
- 二维数据的表头可以作为数据存储,也可以另行存储
- 逗号为英文半角逗号,逗号与数据之间无额外空格- 按行存或者按列存都可以,具体由程序决定
- 一般索引习惯:ls[row][column],先行后列
- 根据一般习惯,外层列表每个元素是一行,按行存

二维数据的处理

从CSV格式的文件中读入数据
fo = open(fname)
ls = []
for line in fo:line = line.replace("\n","")ls.append(line.split(",")) fo.close()
将数据写入CSV格式的文件
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)

单元小结:

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

10.wordcloud库的使用

- wordcloud是优秀的词云展示第三方库
- 词云以词语为基本单位,更加直观和艺术地展示文本wordcloud库的安装
(cmd命令行)  pip install wordcloud- wordcloud.WordCloud()代表一个文本对应的词云

wordcloud库常规方法

w = wordcloud.WordCloud()-向WordCloud对象w中加载文本txt
w.generate(txt)
>>>w.generate("Python and WordCloud")-将词云输出为图像文件,.png或.jpg格式
w.to_file(filename)
>>>w.to_file("outfile.png")

配置对象参数

指定词云对象生成图片的宽度,默认400像素;高度,默认200像素
width,height
>>>w=wordcloud.WordCloud(width=600)指定词云中字体的最小/大字号,默认4号
min_font_size / max_font_size
>>>w=wordcloud.WordCloud(min_font_size=10)指定词云中字体字号的步进间隔,默认为1
font_step指定字体文件的路径,默认None
font_path
>>>w=wordcloud.WordCloud(font_path="msyh.ttc")指定词云显示的最大单词数量,默认200
max_words指定词云的排除词列表,即不显示的单词列表
stop_words
>>>w=wordcloud.WordCloud(stop_words={"Python"})指定词云形状,默认为长方形,需要引用imread()函数
mask
>>>from scipy.misc import imread
>>>mk=imread("pic.png")
>>>w=wordcloud.WordCloud(mask=mk)
指定词云图片的背景颜色,默认为黑色
background_color

eg :

#以空格分隔单词
import wordcloud
txt = "life is short, you need python"
w = wordcloud.WordCloud( \background_color = "white")
w.generate(txt)
w.to_file("pywcloud.png")

结果:

#中文需要先分词并组成空格分隔字符串
import jieba
import wordcloud
txt = "程序设计语言是计算机能够理解和\
识别用户操作意图的一种交互体系,它按照\
特定规则组织计算机指令,使计算机能够自\
动进行各种运算处理。"
w = wordcloud.WordCloud( width=1000,\font_path="msyh.ttc",height=700)
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("pywcloud.png")

结果:

实例:政府工作报告词云

- 步骤1:读取文件、分词整理
- 步骤2:设置并输出词云
- 步骤3:观察结果,优化迭代

新时代中国特色社会主义.txt

#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", \)
w.generate(txt)
w.to_file("grwordcloud.png")

关于实施乡村振兴战略的意见.txt

#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", \)
w.generate(txt)
w.to_file("grwordcloud.png")

结果(第一段代码):

更有形的词云

#GovRptWordCloudv2.py
import jieba
import wordcloud
from imageio 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(   font_path = "msyh.ttc", mask = mask\width = 1000, height = 700, background_color = "white", \)
w.generate(txt)
w.to_file("grwordcloud.png")

python第七章-文件和数据格式化相关推荐

  1. python第七章文件和数据格式化选择题_《计算机二级Python语言程序设计考试》第7章:文件和数据格式化...

    注明:本系列课程专为全国计算机等级考试二级 Python 语言程序设计考试服务 目录 考纲考点 文件的使用: 文件打开.关闭和读写 数据组织的维度:一维数据和二维数据 一维数据的处理:表示.存储和处理 ...

  2. python第七章文件和数据格式化选择题_python第七章-文件和数据格式化

    1.文本文件 vs 二进制文件#文本形式打开文件 tf = open("f.txt", "rt") print(tf.readline()) tf.close( ...

  3. 第 7 章 文件和数据格式化

    整理的文章内容主要来源为高教版<计算机等级考试二级 Python>教程视频讲义,并且更正了原讲义中的错误的地方. 专栏文章索引如下: 考试大纲 第 1 章 程序设计基本方法 第 2 章 P ...

  4. 计算机二级python 知识点篇(文件和数据格式化)

    计算机二级python 知识点篇(文件和数据格式化) 考纲考点 文件的使用: 文件打开. 关闭和读写 数据组织的维度: 一维数据和二维数据 一维数据的处理: 表示. 存储和处理 二维数据的处理: 表示 ...

  5. 计算机二级python-第七章-文件和数据的格式化

    时间:2021/09/04 文章目录 1.文件的使用 1.1 文件的类型 1.2 文件的打开和关闭 1.3 文件的读写 2.数据组织的维度 2.1 一维数据 2.2 二维数据 2.3 高维数据 3.一 ...

  6. Python笔记六、文件和数据格式化

    一. 文件的操作 fname = input("请输入要打开的文件:") fo = open(fname,"r") print(fo.readlines()) ...

  7. 第七章文件与数据维度

    目录 学习目标 1.了解计算机中文件的类型.数据维度 2.掌握文件的基本操作 3.熟练管理文件与目录 4.掌握常见的数据维度 一.文件概述 1.文件标识 2.文件类型 3.标准文件 二.文件的基本操作 ...

  8. 七、文件和数据格式化

    目录 一.文件 1.概述 2.使用 (1)打开和关闭 (2)读写 二.数据组织 1.一维数据 (1)表示 (2)存储 a.采用空格分隔元素 b.采用逗号分隔元素 c.采用换行分隔元素 d.采用特殊符号 ...

  9. 国家精品在线开放课程“Python语言程序设计”(北理工-嵩天)-第七周文件和数据格式化 练习题

    文件字符分布 问题描述: 统计附件文件的小写字母a-z的字符分布,即出现a-z字符的数量,并输出结果.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪ ...

  10. Python之文件和数据格式化学习笔记

    这是文章目录 1,前言 2,文件的使用 2.1,文件的类型 2.1.1文件的理解 2.1.2,文本文件与二进制文件 2.2,文件的打开和关闭 2.3,文件的内容读取 2.4,数据文件的写入 一维数据的 ...

最新文章

  1. poj1639(最小K度生成树)
  2. 【文文殿下】数论一些经典结论
  3. php 如何 闭源,Linux_Debian如何安装闭源软件包有哪些方法,  在系统操作中,闭源软件 - phpStudy...
  4. js计算排名_今天,我们讲一下,快速排名与黑帽SEO
  5. php/eq,thinkphp中eq标签的使用
  6. 数据库实验7 数据库视图的定义与使用
  7. jupyter 设置主题Error:Could not find a version that satisfies the requirement jupyterthemes from version
  8. 华为LACP的相关配置命令
  9. java运行bat_java调用bat
  10. 《持续集成实践指南》第3章 Gitlab基本配置与使用
  11. 伪标签(Pseudo-Labelling)介绍:一种半监督机器学习技术
  12. 阿里云商标智能注册申请图文教程(亲踩坑)
  13. linux系统下使用gcc编译C++程序出现XXX未定义的引用的处理
  14. lofter 爬虫_Python网络爬虫1 - 爬取网易LOFTER图片
  15. HarmonyOS开发-路由组件体验
  16. c#汉字转拼音(GBK,GB2312)
  17. selenium webdriver 使用webDriver点击ENTER建的两种方法
  18. Java餐厅点餐系统uniapp源码带安装教程
  19. 关于路由器的配置参数
  20. 高等代数 线性映射(第9章)4 约当标准型与相抵标准形

热门文章

  1. 太阳高度角计算题_正午太阳高度角的计算及应用
  2. 太阳高度角计算题_【难点突破】太阳高度角与正午太阳高度角区别(附例题解析)...
  3. 根据车辆型号自动生成车辆编号
  4. cef调用本地html,在CefSharp中使用本地构建的网页(Working with locally built web page in CefSharp)...
  5. [浅析]UE4关卡流
  6. python之操作mysql数据库
  7. James+Javamail构建邮箱服务
  8. matlab 半正定规划,半正定规划
  9. 在Latex中插入FontAwesome图标
  10. layui 勾选不联动父项 树形控件,treetable-lay