文章目录
一.文件的使用
1.1 文件的类型
- 文本文件
- 二进制文件
1.2 文件的打开和关闭
1.2.1 打开文件的代码
<变量名> = open(<文件名>,<打开模式>)
文件名
:直接写文件路径,但是python中规定"\"是转义字符
,所以一般用/ 或者\\
来表示,比如"D:/PYE/f.text"
或者"D:\\PYE\\f.text"
相对路径
:如果当前文件在D盘根目录下,可以直接写成"./PYE/f.text"
。如果当前程序与当前文件在相同目录,可以直接写成"f.text"
1.2.2 打开文件的模式
举例:
1.2.3 关闭文件的代码
<变量名>.close()
//每次使用完文件应该关闭
1.3 文件内容的读取
1.3.1 三种文件内容的读取方法
以下描述都是基于文件内容是中国是个伟大的国家
1.3.2 文件的全文本操作
- 遍历全文本:方法一
fname = input("请输入要打开的文件路径")
fo = open(fname,"r")
txt = fo.read() //一次读入,统一处理
#处理操作
fo.close()
- 遍历全文本:方法二
fname = input("请输入要打开的文件路径")
fo = open(fname,"r")
txt = fo.read(2) //按数量读入,逐步处理
while 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: //分行读入,分行处理
print(line)
fo.close()
1.4 数据的文件写入
举例:
fo = open("output.text","w+")
ls = ["中国","法国","美国"]
fo.writelines(ls)
for line in fo:
print(line)
fo.clone()
>>>(没有任何输出)
fo = open("output.text","w+")
ls = ["中国","法国","美国"]
fo.seek(0)
fo.writelines(ls)
for line in fo:
print(line)
fo.clone()
>>>中国法国美国
二.实例:自动轨迹绘制
2.1 问题分析
- 需求:根据脚本来绘制图形
- 不是写代码而是写数据绘制轨迹
- 数据脚本是自动化最重要的一步
2.2 代码
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.rt(datals[i][2])
else:
t.lt(datals[i][2])
2.3 运行效果
三.一维数据的格式化和处理
3.1 数据组织的维度
- 一维数据:对应列表,数据,集合
- 二维数据:对应表格
- 多维数据:由一维或二维数据上在新维度上扩展形成
3.2 一维数据的表示
3.3 一维数据的存储
3.4 一维数据的处理
3.4.1 读入处理
3.4.2 写入处理
四.二维数据的格式化和处理
4.1 二维数据的表示
- 二维列表表示
- 使用两层for循环遍历元素
- 外层列表中每个元素可以对应一行,也可以对应一列
4.2 CSV数据存储格式
- CSV:conma-separated Values,指的是由逗号分隔的值
- 国际通用的一二维数据存储格式,一般.csv扩展名
- 每行一个一维数据,用逗号分隔,无空行
- Excel和一般编辑软件都可以读入或另存为csv文件
- 如果某个元素缺失,逗号仍要保留
- 二维数据的表头可以作为数据存储,也可以另行存储
- 逗号为英文半角逗号,逗号与数据之间无额外空格
4.3 二维数据的存储
- 一般的索引习惯:
ls[行,列]
,先行后列,一般外层列表每个元素是一行,所以按行存
4.4 二维数据的处理
- 从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)
五.wordcloud库的使用
5.1 安装
- 安装
pip install wordcloud
wordcloud.WordCloud()
代表一个文本对应的词云- 可以根据文本中词语出现的频率等参数绘制词云
- 绘制词云的形状,尺寸和颜色都可以设定
5.2 常规方法
w = wordcloud.WordCloud()
- 以WordCloud对象为基础
- 配置参数,加载文本,输出文件
5.3 词云绘制的步骤介绍
(1)基本步骤:
- 配置对象参数
- 加载词云文本
- 输出词云文件
(2)实例
import wordcloud
c = wordcloud.WordCloud()
c.generate("wordcloud by Python")
c.to_file("pywordcloud.png")
5.4 配置对象参数
w = wordcloud.WordCloud(参数)
5.5 实例
import wordcloud
txt = "life is short,you need python"
w = wordcloud.WordCloud(background_color = "white")
w.generate(txt)
w.to_file("pywcloud.png")
六.政府工作报告词云
两篇文章的地址
https://python123.io/resources/pye/新时代中国特色社会主义.txt
https://python123.io/resources/pye/关于实施乡村振兴战略的意见.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( \
width = 1000, height = 700,\
background_color = "white",
font_path = "msyh.ttc"
)
w.generate(txt)
w.to_file("grwordcloud.png")