文件和数据格式化

文件和数据格式化

-格式化
    -字符串格式化:format()将字符串按照一定规格和式样进行规范
    -数据格式化:将一组数据按照一定规格和式样进行规范:表示、存储、运算等

一、文件使用

1、文件的类型

-文件时存储再辅助存储器上的数据序列
-文件时数据存储的一种形式
-文件是展示形态:文本二进制文件
-本质上,所有文件都是二进制形式存储
-形式上,所有文件采用两种方式展示

1-1、文本文件:文件是数据的抽象和集合

-由单一特定编码组成的文件,如UTF-8编码
-由于存在编码,也被看成是存储着的字符串
-适用于例如:.txt文件、.py文件

1-2、二进制文件

-直接由比特0和1组成,没有统一字符编码
-一般存在二进制0和1的组织结构,即文件格式
-适用于例如:.png文件、.avi文件

2、文件的打开关闭

-文件处理的步骤:代开-操作-关闭
-打开文件 : a=open(,)
-关闭文件:a.close()
-读文件函数:
    -a.read(size)
    -a.readline(size)
    -a.readlines(hint)
-写文件:
    -a.write(s)
    -a.writelinrs(lines)
    -a.seek(offset)

2-1、文件的打开

-<变量名> = open(<文件路径和名称>,<打开模式文本或二进制和读或写>)

打开模式

文件的打开模式描述
“r”只读模式,默认值,如果文件不存在,返回FileNotFoundError
“w”覆盖写模式,文件不存在则创建,存在则完全覆盖
“X”创建写模式,文件不存在则创建,存在则返回FileExistsError
“a”追加写模式,文件不存在则创建,存在则在文件最后追加内容
“b”二进制文本模式
“t”文本文件模式,默认值
“+”与r/w/a/x一同使用,在源功能基础上增加同时读写功能

举例

f = open("python课堂笔记/static/f.txt") #文本形式,只读模式,默认值
f = open("python课堂笔记/static/f.txt","rt") #文本形式,只读模式,同默认值
f = open("python课堂笔记/static/f.txt","w") #文本形式,覆盖写模式
f = open("python课堂笔记/static/f.txt","a+") #文本形式,追加写模式+读模式、
f = open("python课堂笔记/static/f.txt","x") #文本形式,创建写模式
f = open("python课堂笔记/static/f.txt","b") #二进制形式,只读模式
f = open("python课堂笔记/static/f.txt","wb") #二进制模式,覆盖写模式

2-2、文件的关闭

-<变量名>.close()

3、文件内容的读取

操作方法描述
.read(size = -1)读取全部内容,如果给出参数,读入前size长度。举例 s= f.read(2)#中国是一个伟大的国家。输出:中国
.readline(size = -1)读入一行内容,如果给出参数,读入该行前size长度。举例:s = f.readline() 输出:中国是一个伟大的国家
.readlines(hint = -1)读入文件所有行,以每行为元素形成列表。如果给出参数,读入前hint行。s=f.readlines() 输出:[“中国是一个伟大的国家”]

读举例

#遍历全文本,分批读入
fname = input("请输入要打开的文件名:")
fo = open(fname,"r")
txt = fo.read(2)
while txt != "":
    #txt进行处理
    txt = fo.read(2)
fd.close()


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

4、数据的文件写入

操作方法向文件写入一个
.write(S)向文件写入一个字符串或字节流。举例:f.write(“中国是一个伟大的国家”)
.writelines(lines)将一个元素全为字符串的列表写入文件。举例:ls =[“中国”,“美国”,“法国”];输出:中国美国法国
.seek(offset)改变当前文件操作指针的位置,offset含义如下:0-文件开头、1-当前位置、2-文件结尾。举例:fseek(0)#回到文件开

写举例

fo = open("output.txt","w+")
ls = ["中国",,法国","美国"]
fo.writelines(ls)#写入字符串列表
fo.seek(0) #将指针回到开头
for line in fo:
    print(line)
fo.close()

二、数据组织的维度

-数据的操作周期
    -存储 <-> 表示 <-> 操作

1、一维数据的格式化和处理

1-1、一维数据的表示

-数据间有序
    -列表类型可以表达一维有序数据
    -for循环可以遍历数据,进而对每个数据进行处理
-数据间无序
    -集合类型可以表达一维无序数据
    -for循环可以遍历数据,进而对每个数据进行处理

1-2、一维数据的存储

-存储方式一:空格分隔
    -使用一个或多个空格分隔进行存储,不换行
    -缺点:数据中不能存在空格
-存储方式二:逗号分隔
    -使用一个或多个逗号分隔进行存储,不换行
    -缺点:数据中不能存在英文逗号
-存储方式三:其它方式
    -使用其它符号或符号组合分隔,建议采用特殊符号
    -缺点:需要根据数据特点定义,通用性差

1-3、一维数据处理

1)实例

    txt = open(fname).read()#从空格分隔文件读取
    ls = txt.split()
    f.close

    txt = open(fname).read()#从$分隔文件读取
    ls = txt.split("$")
    f.close

    ls = ["1","2","3","4"]
    f = open(fname,"w")
    f.write(" ".join) #空格写入
    f.close()

2、二维数据格式化和处理

2-1、二维数据的表示

-列表类型可以表达二维数据
-使用二维列表
-使用两层for循环遍历每个元素
-外层列表中每个元素对应一行,也可以对应一列

2-2、CSV格式与二维数据的存储

-csv数据存储格式
    -国际通用的一二维数据存储格式,一般.csv扩展名
    -每行一个一维数据,采用逗号分隔,无空行
    -Excel和一般编辑软件都可以读入或另存为csv文件
    -如果某个元素缺失,逗号仍要保留
    -二维数据的表头可以作为数据存储,也可以另行存储
    -逗号采用英文半角逗号,逗号和数据之间无额外空格
-二维数据的存储
    -按行或者按列都可以具体由程序决定
    -一般索引习惯:ls[row][column],先行后列

2-3、二维数据的处理

#从CSV格式的文件中读入数据
    fo = open(fname)
    ls = []
    for line in fo:
        line = line.replace("\n","")#去掉换行
        ls.append(line.split(","))
    fo.close()

#将数据写入CSV格式的文件
    ls = [[],[],[]] #二维列表
    发= open(fname,"W")
    for item in ls:
        f.write(",".join(item)+"\n")
    f.close()
    


三、wordcloud库概述

-wordcloud是优秀的词云展示第三方库,需使用pip安装

1、wordcloud库的基本使用

-wordcloud库把词云当作一个wordcloud对象
-wordcloud.WordCloud()代表一个文本词云
-可以根据文本中词语出现的频率等参数绘制词云
-绘制词云的形状、尺寸和颜色都可以设定

1-1、wordcloud库的常规使用

-w = wordcloud.WordCloud()
-以WordCloud对象为基础
-配置参数、加载文本、输出文件
    -分隔:以空格分隔单词
    -统计:单词出现的次数并过滤
    -字体:根据统计配置字号
    -布局:颜色环境尺寸

1)基本使用方法

方法描述
w.generate(txt)向WordCloud对象中加载文本txt,w.generate(“python and wordcloud”)
w.to_file(filename)将词云输出为图像文件,.png或.jpg格式。w.to_file(“outfile.png”)

** 实例**

import wordcloud
c = wordcloud.WordCloud()   
c.generate("wordcloud by python")
c.to_file("wordcloud.png")

2)配置对象参数
w = wordcloud.WordCloud(<参数>)

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

应用实例

import wordcloud
import jieba
txt = open("E:\web学习\python课堂笔记\static/threekingdom.txt","r",encoding="utf-8").read()
excludes = {"将军","却说","荆州","二人","不可","不能","如此","商议","如何","主公","军士","左右","军马","引兵","次日","大喜"\
          ,"天下","东吴","于是","今日","不敢","魏兵","陛下","一人","都督","人马","不知","汉中","只见","众将","后主","蜀兵"\
          ,"上马","大叫","太守","此人","夫人","先主","后人","背后","城中","天子","一面","何不","大军","忽报","先生","百姓"\
          ,"何故","然后","先锋","不如","赶来","原来","令人","江东","下马","喊声","正是","徐州","忽然","因此","成都","不见"\
          ,"未知","大败","大事","之后","一军","引军","起兵","军中","接应","进兵","大惊","可以","以为","大怒","不得","心中"\
          ,"下文","一声","追赶","粮草","孔明曰"}   
w = wordcloud.WordCloud(width=1000,\
        height=700,stopwords=excludes,max_words=15,\
        font_path="python课堂笔记/static/simsun.ttc")
w.generate("".join(jieba.lcut(txt)))
w.to_file("txt.png")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值