七:⽂件和数据格式化
⽂件和数据各式化
⽂件的使⽤
⽂件的类型
⽂本⽂件:
由单⼀特定编码组成的⽂件,如UTF-8编码
由于存在编码,也被看成是存储着的长字符串
适⽤于例如:.txt⽂件、.py⽂件等。
⼆进制⽂件:
直接由⽐特0和1组成,没有统⼀字符编码
⼀般存在⼆进制0和1的组织结构,即⽂件格式
适⽤于例如:.png⽂件、.avi⽂件等。
⽂件的理解
⽂件是数据的抽象和集合:
⽂件是储存在辅助存储器上的数据序列
本质上,所有⽂件都是⼆进制形式存储
形式上,所有⽂件采⽤两种⽅式展⽰
⽂件的打开和关闭
⽂件路径:
打开:<;变量名> = open(<⽂件名>, <;打开模式>) 关闭:<;变量名>.close()
⽂件路径和名称 "D:/" "./"
源⽂件同⽬录可省路径 "D:\\PYE\\f.txt" "f.txt"
打开模式
⽂件的打开模
式
描述
'r'只读模式,默认值,如果⽂件不存在,返回
FileNotFoundError
'w'覆盖写模式,⽂件不存在则创建,存在则完全覆盖
'x'创建写模式,⽂件不存在则创建,存在则返回FileExistsError
'a'追加写模式,⽂件不存在则创建,存在则在⽂件最后追加内容
'b'⼆进制⽂件模式
't'⽂本⽂件模式,默认值
'+'与r/w/x/a⼀同使⽤,在原功能基础上增加同时读写功能
⽂件内容的读取
操作⽅法描述
<f>.read(size = -1)读⼊全部内容,如果给出参数,读⼊前size长度s = f.read(2)
中国
<f>.readline(size = -1)读⼊⼀⾏内容,如果给出参数,读⼊该⾏前size长度s = f.readline()
中国是⼀个伟⼤的国家
<f>.readlines(hint = -1)读⼊⽂件所有⾏,以每⾏为元素形成列表,如果给出参数,读⼊前hint⾏s = f.readlines()
['中国是⼀个伟⼤的国家']
1 fname = input("请输⼊要打开的⽂件名称")
2 fo = open(fname, "r")
3#遍历全⽂本:⽅法⼀(⼀次读⼊,统⼀处理)
4 txt = fo.read()
5#遍历全⽂本:⽅法⼆(按数量读⼊,逐步处理) 6 txt = fo.read(2)
7while txt != "":
8 txt = fo.read(2)
9#逐⾏遍历⽂件:⽅法⼀(⼀次读⼊,分⾏处理) 10for line adlines():
11print(line)
12#逐⾏遍历⽂件:⽅法⼆(分⾏读⼊,逐⾏处理) 13for line in fo:
14print(line)
15 fo.close()
数据的⽂件写⼊
操作⽅法描述
<f>.write(s)向⽂件写⼊⼀个字符串或字节流f.write("中国是个伟⼤的国家")
<f>.writelines(lines)将⼀个元素全为字符串的列表写⼊⽂件ls = ["中国","法国","美国"]
f.writelines(ls)
中国法国美国
<f>.seek(offset)改变当前⽂件操作指针的位置,offset含义如下:0-⽂件开头;1-当前位置;2-⽂件结尾
f.seek(0)
1 fo = open("", "w+")
2 ls = ["中国","法国","美国"]
3 fo.writelines(ls)
4#(没有任何输出)
5for line in fo:
6print(line)
7#(输出:中国法国美国)
8 fo.seek(0)
9for line in fo:
10print(line)
11 fo.close()
1#AutoTraceDraw.py
2import turtle as t
3 t.title('⾃动轨迹绘制')
4 t.setup(800, 600, 0, 0)
5 t.pencolor("red")
6 t.pensize(5)
7#数据读取
8 datals = []
9 f = open("")
10for line in f:
11 line = place("\n","")
12 datals.append(list(map(eval, line.split(","))))
14#⾃动绘制
15for i in range(len(datals)):
16 t.pencolor(datals[i][3],datals[i][4],datals[i][5])
17 t.fd(datals[i][0])
18if datals[i][1]:
19 t.rt(datals[i][2])
20else:
21 t.lt(datals[i][2])
⾃动轨迹绘制
⼀维数据的格式化和处理
数据组织的维度
维度:⼀组数据的组织形式
⼀维数据:由对等关系的有序或⽆序数据构成,采⽤线性⽅式组织。例如:列表、数组和集合
⼆维数据:由多个⼀维数据构成,是⼀维数据的组合形式。例如:表格
多维数据:由⼀维数据在新维度上扩展形成。
⾼维数据:仅利⽤最基本的⼆次元关系展⽰数据间的复杂结构。例如:字典
数据的操作周期:存储 <-> 表⽰ <-> 操作
⼀维数据的表⽰
有序:列表类型
⽆序:集合类型
⼀维数据的储存
1.空格分隔:使⽤⼀个或多个空格分隔进⾏存储,不换⾏(缺点:数据中不能存在空格)
例如:中国美国⽇本法国
2.逗号分隔:使⽤英⽂半⾓逗号分隔数据进⾏存储,不换⾏(缺点:数据中不能有英⽂逗号)
writelines()方法将什么写入文件例如:中国,美国,⽇本,法国
3.其他⽅式:使⽤其他符号或符号组合分隔,建议采⽤特殊符号(缺点:需要根据数据特点定义,通⽤性较差)
例如:中国&美国&⽇本&法国
⼀维数据的处理
读⼊:
1 fname = input("请输⼊要打开的⽂件名称")
2 txt = open(fname).read()
3#从空格分隔的⽂件中读⼊数据
4 ls = txt.split()
5#从特殊符号分隔的⽂件中读⼊数据
6 ls = txt.split("&")
7 f.close()
8 ['中国','美国','⽇本']
写⼊:
1 fname = input("请输⼊要打开的⽂件名称")
2 ls = ['中国','美国','⽇本']
3 f = open(fname, 'w')
4#空格
5 f.write(''.join(ls))
6#特殊符
7 f.write('$'.join(ls))
⼆维数据的格式化和处理
⼆维数据的表⽰
使⽤列表类型。
外层列表每个元素可以对应⼀⾏,也可以对应⼀列。
[[3.1,3.2,3.4],[3.2,3.4,4.2]]
CSV格式与⼆维数据的存储
国际通⽤的⼀⼆维数据存储格式,⼀般.csv扩展名
Excel和⼀般编辑软件都可以读⼊或另存为csv⽂件
如果某个元素缺失,逗号仍要保留
⼆维数据的表头可以作为数据存储,也可以另⾏存储
逗号为英⽂半⾓逗号,逗号与数据之间⽆额外空格
⼀般索引习惯:ls[row][column],先⾏后列
根据⼀般习惯,外层列表每个元素是⼀⾏,按⾏存⼆维数据的处理
1 fname = input("请输⼊要打开的⽂件名称")
2#CSV格式的⽂件中读⼊数据
3 fo = open(fname)
4 ls = []
5for line in fo:
6 line = place("\n","")
7 ls.append(line.split(","))
8#将数据写⼊CSV格式的⽂件
9 ls = [[],[],[]]
10 f = open(fname, 'w')
11for itme in ls:
12 f.write(','.join(item) + '\n')
13#采⽤⼆层循环
14 ls = [[1,2],[3.4],[5.6]]
15for row in ls:
16for column in row:
17print(column)
18 fo.close()
wordcloud库
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论