2021-08-11/13 Python嵩天MOOC学习笔记 第七周

Python嵩天MOOC学习笔记

第⑦周:文件和数据

一、文件的使用

①文件的分类
文本文件:
由单一特定编码组成的文件,如UTF-8编码;
被看成是存储着的长字符串;
例如:txt文件、.py文件

二进制文件:
由0和1组成,没有统一字符编码;
一般存在0和1的组织结构,即文件格式;
例如:png、avi

②文件的打开与关闭
文件名

<变量名(句柄)> = open(<文件名><打开模式>)

绝对路径法:
<> = open("D:/PYE/f.txt",<>)
或者 <> = open("D:\\PYE\\f.txt",<>)
注意时斜杠或者双反斜杠!

相对路径法:
如果程序存储在D:下,则用
<> = open("./PYE/f.txt",<>)
如果在同一文件内:
<> = open("f.txt",<>)

打开模式:
在这里插入图片描述

①f = open(“f.txt”) 默认文本形式,只读
和f = open(“f.txt”,“rt”)一样
②b:只读
③打开时要指定读和写的模式
④’+'打开模式的精髓在于它能够同时赋予文件的读写权限。

关闭模式:
<变量名>.close()
注意是变量名!!不是文件名

③文件内容的读取
基本语法

<f>.read(size) :读入全部内容,如果给出参数就是读入前size长度的内容

<f>.readline(size):读入一行,如果给出参数就是读入该行前size长度

<f>.readlines(hint):读入所有行,以每行为元素形成列表,如果给出参数则读入前hint行

文件的全文本操作:
方法一:

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: 
#这里避免了readlines,是分行读入,省内存
	print(line)
fo.close()

④数据的文件写入
f.write(s)
f.writelines(lines) :拼接后写入
f.seek(offset)在这里插入图片描述
在这里插入图片描述

fo = open("output.txt","w+")
ls = ["中国""法国","美国"]
fo.writelines(ls) #写入信息
fo.seek(0) #没有这一行则没有输出!!
for line in fo:
	print(line)
fo.close()

二、自动轨迹绘制

△不是通过写代码而是写数据来绘制轨迹,数据脚本是自动化的重要一步

思路:
定义数据文件格式(接口)
编写程序,根据接口解析参数绘制图形
编制数据文件

思维:
自动化思维:数据与功能分离
接口化设计:格式化设计接口
二维数据应用:如何处理成二维列表

三、一维数据的格式化

在这里插入图片描述
存储 -> 表示 ->操作
一维的存储:

  • 列表类型可以表达一维有序数据
  • 集合类型可以表达一维无序数据
  • for遍历
  • 存储方式:①用空格分隔不换行,不适合本身含空格的数据;②用逗号分隔;③特殊符号分隔

一维的处理:

  • 从空格分隔的文件中读入数据
txt = open(fname).read() #←attention
ls = txt.split()
f.close
  • 采用空格分隔方式将数据写入文件
ls = ["中国""美国""日本"]
f = open(fname,"w")
f.write(' '.join(ls)) #←attention
f.close()

四、二维数据的格式化

数据存储格式:

  • 二维数据用二维列表,使用两层for遍历
  • 采用CSV即Comma-Seperated Values,用逗号分隔的值,用.csv扩展名;每行一个一维数据,逗号分隔,无空行;一般来说,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)

五、应用实例:词云

  • wordcloud库把词云当做一个WordCloud对象
  • wordcloud.WordCloud()代表一个文本对应的词云
  • 先使用w = wordcloud.WordCloud(),w叫做对象参数,然后再使用以下方法
方法描述
w.generate(txt)向WordCloud对象w中加载文本txt 如>>>w.generate(“Python and wordcloud”) ,txt要求是由空格分隔的长文本
w.to_file(filename)将词云输出为图像文件,.png或.jpg格式 如>>>w.to_file(“outfile.png”)
  • 步骤:配置对象参数;加载词云文本;输出词云文件
  • 词云会把一到两个字符的单词过滤掉;中文需要用jieba分词
  • 修改配置参数:width height min_font_size max_font_size font_step font_path max_words stop_words mask background_color
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

六、政府工作报告词云制作

思路:

  • 读取文件,分词整理
  • 设置并输出词云
  • 观察结果,优化迭代
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值