第七周:文件和数据格式化

7.1文件的使用
1.文件的类型

文件是数据的抽象和集合

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

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

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

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

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

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

文本文件

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

二进制文件

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

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'

2.文件的打开和关闭

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

3.文件内容的读取

遍历全文本
按数量读入,逐步处理

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

4.数据的文件写入


7.2“自动轨迹绘制”问题分析
基本思路

  • 步骤1:定义数据文件格式(接口)
  • 步骤2:编写程序,根据文件接口解析参数绘制图形
  • 步骤3:编制数据文件
#AutoTraceDraw.py
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.rt(datals[i][2])
    else:
        t.lt(datals[i][2])

7.3一维数据的格式化和处理
1.数据组织的纬度

一维数据的表示

2.一维数据的储存

空格分行

7.4二维数据的格式化处理
1.二维数据的表示

2.CSV格式与二维数据储存

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

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

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

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

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

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

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

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

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

2.二维数据的处理


你可能感兴趣的:(第七周:文件和数据格式化)