python文件和数据格式化

版权声明:本文为博主原创文章,欢迎转载。如有问题,欢迎指正。 https://blog.csdn.net/weixin_42172261/article/details/88079826

文件和数据格式化

一、文件的使用
文件的类型
文件是数据的抽象和集合
文件是存储在辅助存储器上的数据序列
文件是数据存储的一种形式
文件展现形态:文本文件和二进制文件
文件文件和二进制文件只是文件的展示方式
本质上,所有文件都是二进制形式存储
形式上,所有文件采用两种方式展示

文本文件:由单一特定编码组成的文件,如UTF-8编码;由于存在编码,也被看成是存储着的长字符串
二进制文件:直接由比特0和1组成,没有统一字符编码;一般存在二进制0和1的组织结构,即文件格式
文件的打开关闭
文件处理的步骤: 打开-操作-关闭
文件的打开
<变量名> = open(“<文件名>, <打开模式>”)
打开模式
‘r’ 只读模式,默认值,如果文件不存在,返回FileNotFoundError
‘w’ 覆盖写模式,文件不存在则创建,存在则完全覆盖
‘x’ 创建写模式,文件不存在则创建,存在则返回FileExistsError
‘a’ 追加写模式,文件不存在则创建,存在则在文件最后追加内容
‘b’ 二进制文件模式
‘t’ 文本文件模式,默认值
‘+’ 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
文件的关闭
<变量名>.close()
文件内容的读取
.read(size=-1):读入全部内容,如果给出参数,读入前size长度
.readline(size=-1):读入一行内容,如果给出参数,读入该行前size长度
.readlines(hint=-1):读入文件所有行,以每行为元素形成列表如果给出参数,读入前hint行
文件的全文本操作

#遍历全文本:方法一
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()

文件的逐行操作

#逐行遍历文件:方法一
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()

数据的文件写入
.write(s):向文件写入一个字符串或字节流
.writelines(lines):将一个元素全为字符串的列表写入文件
.seek(offset):改变当前文件操作指针的位置,offset含义如下: 0 – 文件开头; 1 – 当前位置; 2 – 文件结尾

二 数据格式化
一维数据:由对等关系的有序或无序数据构成,采用线性方式组织
对应列表、数组和集合等概念
二维数据:由多个一维数据构成,是一维数据的组合形式
表格是典型的二维数据
多维数据:由一维或二维数据在新维度上扩展形成
高维数据:利用最基本的二元关系(键值对)展示数据间的复杂结构
(一)一维数据
一维数据的表示
如果数据间有序:使用列表类型
列表类型可以表达一维有序数据
for循环可以遍历数据,进而对每个数据进行处理
如果数据间无序:使用集合类型
集合类型可以表达一维无序数据
for循环可以遍历数据,进而对每个数据进行处理
一维数据的存储
存储方式一:空格分隔
使用一个或多个空格分隔进行存储,不换行
缺点:数据中不能存在空格
存储方式二:逗号分隔
使用英文半角逗号分隔数据进行存储,不换行
缺点:数据中不能有英文逗号
存储方式三:其他方式
使用其他符号或符号组合分隔,建议采用特殊符号
缺点:需要根据数据特点定义,通用性较差
一维数据的处理
一维数据的读入处理

#例:从空格分隔的文件中读入数据
txt = open(fname).read()
ls = txt.split()
f.close()

一维数据的写入处理

#例:采用空格分隔方式将数据写入文件
ls = ['中国', '美国', '日本']
f = open(fname, 'w')
f.write(' '.join(ls))
f.close()

(二)二维数据
CSV格式与二维数据存储
国际通用的一二维数据存储格式,一般.csv扩展名
每行一个一维数据,采用逗号分隔,无空行
Excel软件可读入输出,一般编辑软件都可以产生
如果某个元素缺失,逗号仍要保留
二维数据的表头可以作为数据存储,也可以另行存储
逗号为英文半角逗号,逗号与数据之间无额外空格
二维数据的表示:使用二维列表
使用两层for循环遍历每个元素
外层列表中每个元素可以对应一行,也可以对应一列
二维数据的存储:通常按行存; 外层列表每个元素是一行
二维数据的处理
二维数据的读入处理

#例:从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 = [[], [], []] #二维列表
for row in ls:
	for column in row:
		print(ls[row][column])

猜你喜欢

转载自blog.csdn.net/weixin_42172261/article/details/88079826