文件的使用
> 文件的类型
文件的理解: 文件是数据的抽象和集合
- 文件时存储在辅助存储器上的数据序列
- 文件是数据存储的一种形式
- 文件展现形态: 文本文件和二进制文件
文本文件 vs. 二进制文件
- 文本文件和二进制文件只是文件的展示方式
- 本质上, 所有文件都是二进制形式存储
- 形式上, 所有文件采用两种方式展示
文本文件
- 由单一特定编码组成的文件, 如 UTF-8 编码
- 由于存在编码, 也被看成是存储着长字符串
- 适用于例如:.txt 文件,.py 文件等
二进制文件
- 直接由比特 0 和 1 的组织, 没有统一字符编码
- 一般存在二进制 0 和 1 的组织结构, 即文件格式
- 适用于例如:.PNG 文件,.avi 文件等
- 文本形式: 中国是个伟大的国家!
- 二进制形式: b'\xd6\xd0\xb9\xfa\xca\xc7\xb8\xf6\xce\xb0\xb4\xf3\xb5\ xc4\xb9\xfa\xbc\xd2\xa3\xa1'
f.txt 文件保存: "中国是个伟大的国家!"
- # 文本形式打开文件
- tf = open("f.txt", "rt")
- print(tf.readline())
- tf.close()
- # 中国是个伟大的国家!
- # 二进制形式打开文件
- bf = open("f.txt", "rb")
- print(bf.readline())
- bf.close()
- #b'\xd6\xd0\xb9\xfa\xca\xc7\xb8\xf6\xce\xb0 \xb4\xf3\xb5\xc4\xb9\xfa\xbc\xd2\xa3\xa1'
> 文件的打开和关闭
文件处理的步骤: 打开 - 操作 - 关闭
文件的关闭
< 变量名 >.close
> 文件内容的读取
> 数据文件写入
- 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()
- # 中国法国美国
一维数据的格式化和处理
> 数据组织的维度
一维数据: 由对等关系的有序或无序, 采用线性方式组织
二维数据: 由多个一维数据构成, 是一维数据的组合形式
> 一维数据的表示
如果数据间有序: 使用列表类型
-for 循环可以遍历数据, 进而对每个数据进行处理
如果数据间无序: 使用集合类型
-for...
> 一维数据的存储
存储方式一: 空格分隔
中国 美国 日本 德国 法国 英国 意大利
- 使用一个或多个空格分隔进行存储, 不换行
- 缺点: 数据中不能存空格
存储方式二: 逗号分隔
中国, 美国, 日本, 德国, 法国, 英国, 意大利
- 使用英文半角逗号分割数据进行存储, 不换行
- 缺点: 数据中不能有英文逗号
存储方式三: 其他方式
中国 $ 美国 $ 日本 $ 德国 $ 法国 $ 英国 $ 意大利
- 使用其他符号或符号组合隔离, 建议采用特殊符号
- 缺点: 需要根据数据特点定义, 通用性差
> 一维数据的处理
- txt=open(fname).read()
- ls=txt.split()
- f.close
- ls
- #['中国', '美国', '日本', '德国', '法国', '英国', '意大利']
- txt=open(fname).read()
- ls=txt.split("$")
- f.close
- ls
- #['中国', '美国', '日本', '德国', '法国', '英国', '意大利']
采用空格分隔方式将数据写入文件
- ls = ['中国', '美国', '日本']
- f = open(fname, 'w')
- f.write(' '.join(ls))
- f.close()
采用特殊分隔方式将数据写入文件
- ls = ['中国', '美国', '日本']
- f = open(fname, 'w')
- f.write('$'.join(ls))
- f.close()
二维数据的格式化和处理
> 二维数据的表示
>CSV 数据存储格式
CSV: Comma-Separated Values
- 国际通用的一二维数据存储格式, 一般. CSV 扩展名
- 每行一个一维数据, 采用逗号分隔, 无空行
-Excel 和一般编译软件都可以读入或另存为 CSV 文件
- 如果某个元素缺失, 逗号仍要保留
- 二维数据的表头可以作为数据存储, 也可以另行存储
- 逗号为英文半角逗号, 逗号与数据之间无额外空格
> 二维数据的存储
> 二维数据的处理
二维数据的读入处理
从 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][colum])
部分图片来自慕课 https://www.icourse163.org/course/BIT-268001 若侵权请告知删除
来源: http://www.bubuko.com/infodetail-2969008.html