轻轻松松学会Python入门九:文件和数据格式化

简介: 轻轻松松学会Python入门九:文件和数据格式化

文件的使用


e261425838a145f1910a828858adde60.png


一,文件的类型


1,文件是数据的抽象和集合


文件是存储在辅助存储器上的数据序列

文件是数据存储的一种形式

文件展现形态:文本文件和二进制文件


2,文件的理解:


- 文件文件和二进制文件只是文件的展示方式

- 本质上,所有文件都是二进制形式存储

- 形式上,所有文件采用两种方式展示


3,文件是数据的抽象和集合:


-由单一特定编码组成的文件,如UTF-8编码

-由于存在编码,也被看成是存储着的长字符串

-适用于例如: .txt文件、 .py文件等


1)二进制文件:


- 直接由比特0和1组成,没有统一字符编码

- 一般存在二进制0和1的组织结构,即文件格式

- 适用于例如: .png文件、 .avi文件等


178eb8a4e6174e39b51a9e0aa76d29fd.png

8e813132f14545688553d09f183e2402.png


二,文件的打开和关闭:


文件处理的步骤:打开-操作-关闭


966e51a4352a4b639a6eeb1d40593c13.png


a. read(size)

a. readline(size)

a. readlines (hint)

a. write(s)

a . writelines ( lines )

a. seek( offset)


1,文件的打开:


ed7c0cadee6c4070825e0b0957af3495.png

fb60c8598fd94d4fa0adbc8aaced3b45.png


2,文件的打开模式:


9a0eb4be807745218adf5a7f8d1223a7.png

e35b0962458d49b8bf9c807af752cbed.png


三,文件内容的读取


7d3927bf88aa4f1184ff99216376b2a3.png

1b0c0aeb6992482fa30ab342776a369c.png


四,文件的全文本操作:


1,遍历全文本:


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( )


2,逐行遍历文件:


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( )


五,数据文件的写入:


4518692f949c492fbbcaff5c4c2d286d.png

183bf0b1daf3453bb365b3ced2bcbb6a.png


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()
>>>中国法国美国


六,实例11,自动轨迹绘制:


26dc6a069fed4ee4b97c16204d0d2870.png

df709b7d2c694d66a7e6300e4cad86e0.png


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])
t.done()


44d0eddba53a4451bb57f4d78129e7a5.png


一维数据的格式化和处理


e582de8a276a4b06a40c4b1d34618b34.png


一,数据组织的维度


一个数据表达一个含义


一组数据表达一个或多个含义


维度就是一组数据的组织形式


1,一维数据:


由对等关系的有序或无序数据构成,采用线性方式组织

对应列表,数组,集合等概念


2,二维数据:


由多个一维数据构成,是一维数据的组合形式


表格是典型的二维数据,其中,表头是二维数据的一部分。


3,多维数据:


由一维或二维数据在新维度上扩展形成。


其实在某种程度上来讲,维度也可以看作数据的特征,有几个特征就叫做几维。


4,高维数据:


仅利用最基本的二元关系展示数据间的复杂结构。


(字典)


二,数据的操作周期


存储<->表示<->操作


ee33611352394d38a92c1fe99248866a.png


三,一维数据的表示


1,如果数据间有序:使用列表类型


ls = [3.1398, 3.1349, 3.1376]


- 列表类型可以表达一维有序数据

- for循环可以遍历数据,进而对每个数据进行处理


2,如果数据间无序:使用集合类型


st = {3.1398, 3.1349, 3.1376}

- 集合类型可以表达一维无序数据

- for循环可以遍历数据,进而对每个数据进行处理


四,一维数据的存储


1,空格分隔:


-使用一个或多个空格分隔进行存储,不换行

-缺点:数据中不能存在空格


2,逗号分隔:


-使用英文半角逗号分隔数据进行存储,不换行

-缺点:数据中不能有英文逗号


3,其他方式:


- 使用其他符号或符号组合分隔,建议采用特殊符号

- 缺点:需要根据数据特点定义,通用性较差


五,一维数据的处理


1,一维数据的读入处理:


1)从空格分隔的文件中读入数据


9ab86b3c741a465a8e5f2d3476eecab0.png


2)从特殊符号分隔的文件中读入数据


f2a077bd4be444718f38a407f620afb0.png


2,一维数据的写入处理:


采用空格分隔方式将数据写入文件


5e66c620167c4fc684ce5ff754102ca7.png


采用特殊分隔方式将数据写入文件


622675ca546c4d20bfb3202ad42c94a6.png


二维数据的格式化和处理


13770d1f14e64e1f9cff2572f96ed39d.png


一,二维数据的表示


1,使用列表类型:


. 列表类型可以表达二维数据

. 使用二维列表


25848c8c45c042beb811c26f9618562b.png


- 使用两层for循环遍历每个元素

- 外层列表中每个元素可以对应一行,也可以对应一列


2,一二维数据的Python表示:


9d897daff8254363a113fd531d8be780.png


二,CSV格式与二维数据存储


1,CSV数据存储格式:


CSV: Comma-Separated Values


- 国际通用的一二维数据存储格式,一般.csv扩 展名

- 每行一个一维数据,采用逗号分隔,无空行

- Excel和一般编辑软件都可以读入或另存为csv文件


339bf5f7f08a4660815dbd72d8f38b2a.png


-  如果某个元素缺失,逗号仍要保留

- 二维数据的表头可以作为数据存储,也可以另行存储

- 逗号为英文半角逗号,逗号与数据之间无额外空格


2,二维数据的存储:


- 按行存或者按列存都可以,具体由程序决定

- 一般索引习惯: Is[row][column], 先行后列

- 根据一般习惯,外层列表每个元素是一行,按行存


3,二维数据的处理:


1)从CSV格式的文件中读入数据:


fo = open( fname)
ls =[]
for line in fo:
    line = line . replace("\n","")
    ls .append(line .split(","))
fo. close( )


2)将数据写入CSV格式的文件:


ls=[[],[],[]]#维列表
f = open(fname,' w' )
for item in ls:
    f .write(' , ' .join(item) + '\n' )
f .close( )


3)二维数据的逐一处理:


采用二层循环


1s = [[1,2], [3,4],[5,6]] #二维列表
for row in ls:
    for column in row:
        print( column)


wordcloud库的使用


一,wordcloud库的基本介绍


wordcloud是优秀的词云展示第三方库

词云以词语为基本单位,更加直观和艺术地展示文本


0ce660a27d2e4a1bb24a69f7bed898e0.png


1,wordcloud库基本使用:


wordcloud库把词云当作一个WordCloud对象

- wordcloud.WordCloud()代表一个文本对应的词云

- 可以根据文本中词语出现的频率等参数绘制词云

- 词云的绘制形状、尺寸和颜色都可以设定


2,wordcloud库常规方法:


6894a38ab00845658365808defd833b3.png

bb3981f7c1f54619a751f99dbe9b9562.png

ea20870da4494213afa389e3acd16639.png


3,配置对象参数:


w = wordcloud.WordCloud(<参数>)


0560b05e7b744e519c99c80f8f8312eb.png

91f965e4d96d4e9094ab323c7c4e7ea9.png

b5a797505a69442db3812e225577c9bc.png

d0bc8dd59e494ed484d696bd56a8143e.png


import wordcloud
txt = "life is short, you need python"
W = wordc loud . WordCloud( \
        background_ color = "white")
W. generate(txt)
W.to_ file(" pywcloud. png")


4189398b8d5645d1a99d4ee584a482d1.png


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


cdd6c9c38fdf4beea7ca4c23df5c29f4.png


实例12,政府工作报告词云:


d65389e446b740559a1269a31c8d8c6a.png


#GovRptWordC1oudv1. py
import jieba
import wordcloud
f = open("新时代中国特色社会主义.txt","r", encoding="utf-8")
t = f.read( )
f.close( )
1s = jieba. 1cut(t)
txt =" ".join(1s)
W = wordcloud . WordCloud (font_ path = "msyh.ttc",\
    width = 1000, height = 700,background_ color = "white", \
    )
W. generate(txt)
w.to_ file(" grwordcloud. png" )


e36cf4ab45544c96a1104537c7149f80.png


#GovRptWordCloudv1. py
import jieba
import wordcloud
f = open("关于实施乡村振兴战略的意见. txt","r", encoding= "utf-8")
t = f.read( )
f.close( )
1s = jieba. 1cut(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")


2570478d6c8a4ba9ad8761955a45125c.png


#GovRptWordC1oudv1. py
import jieba
import wordcloud
f = open( "新时代中国特色社会主义.txt", "r", encoding= "utf-8")
t = f.read( )
f .close()
1s = jieba.1cut(t)
txt =” " .join(1s)
W = wordcloud . WordCloud (font_ path = "msyh.ttc",\
    width = 1000, height = 700,background_ color = "white", \
    max_ words = 15)
W. generate(txt)
W.to_ file( " grwordcloud. png")


49ea36f34d2b4be8ad037602ff418457.png


#GovRptWordC1oudv1. py
import jieba
import wordcloud
f = open("关于实施乡村振兴战略的意见. txt","r", encoding= "utf-8")
t = f.read( )
f.close( )
1s = jieba.1cut(t)
txt = " ".join(ls)
W = wordc loud . WordCloud (font_ path =" msyh.ttc",\
    width = 1000, height = 700, background_ color = "white", \
    max_ words = 15)
W. generate(txt)
W. to_file(" grwordcloud. png")


dabd544394fd4cc297c28e9f37aeb46d.png

目录
相关文章
|
3天前
|
机器学习/深度学习 数据挖掘 网络架构
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
15 0
|
3天前
|
机器学习/深度学习 算法 算法框架/工具
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
23 0
|
1天前
|
机器学习/深度学习 存储 监控
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
|
1天前
|
机器学习/深度学习 数据采集 算法
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
|
1天前
|
JSON 数据可视化 定位技术
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
4 0
|
1天前
|
JSON JavaScript 数据格式
python遍历目录文件_结合vue获取所有的html文件并且展示
python遍历目录文件_结合vue获取所有的html文件并且展示
4 0
|
2天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
2天前
|
存储 索引 Python
Python从入门到精通——1.3.1练习编写简单程序
Python从入门到精通——1.3.1练习编写简单程序
|
2天前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
2天前
|
数据采集 数据可视化 数据处理
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器