第七章文件与数据维度

目录

学习目标

1.了解计算机中文件的类型、数据维度

2.掌握文件的基本操作

3.熟练管理文件与目录

4.掌握常见的数据维度

一、文件概述

1.文件标识

2.文件类型

3.标准文件

二、文件的基本操作

1.文件的打开与关闭

2.文件的读写

3.文件的定位读写 

三、文件与目录管理

四、数据维度

1.基于维度的数据分类

2. 一二维数据的存储与读取

 章节例题

总结



学习目标

1.了解计算机中文件的类型、数据维度

2.掌握文件的基本操作

3.熟练管理文件与目录

4.掌握常见的数据维度



一、文件概述

1.文件标识

       文件标识的意义:找到计算机中唯一确定的文件。

       文件标识的组成:文件路径、文件名主干、文件扩展名。

        操作系统以文件为单位对数据进行管理。

2.文件类型

       计算机中的文件分为文本文件和二进制文件。

文本文件:专门存储文本字符数据。

二进制文件:不能直接使用文字处理程序正常读写,必须先了解其结构和序列化规则,再设计正确的反序列化规则,才能正确获取文件信息。

3.标准文件

 Python的sys模块中定义了3个标准文件,分别为:

stdin(标准输入文件)。标准输入文件对应输入设备,如键盘。

 stdout(标准输出文件)。

stderr(标准错误文件)。标准输出文件和标准错误文件对应输出设备,如显示器。


二、文件的基本操作


1.文件的打开与关闭

(1)打开文件

内置函数open()用于打开文件,该方法的声明如下:

open(file, mode='r', buffering=-1)

 file:文件的路径。

mode:设置文件的打开模式,取值有r、w、a。

buffering:设置访问文件的缓冲方式。取值为0或1。

r:以只读方式打开文件(mode参数的默认值)。

w:以只写方式打开文件。

a:以追加方式打开文件。

b:以二进制形式打开文件。

+:以更新的方式打开文件(可读可写)

示例如下:

file1 = open('E:\\a.txt')		# 以只读方式打开E盘的文本文件a.txt
file2 = open('b.txt', 'w')		# 以只写方式打开当前目录的文本文件b.txt
file3 = open('c.txt', 'w+')		# 以读/写方式打开文本文件c.txt
file4 = open('d.txt', 'wb+')	# 以读/写方式打开二进制文件d.txt

 (2)关闭文件

       Python可通过close()方法关闭文件,也可以使用with语句实现文件的自动关闭。

(1)close()方法

file.close()

(2)with语句

with open('a.txt') as f:

        pass


2.文件的读写

(1)读取文件

       read()方法

read()方法可以从指定文件中读取指定字节的数据

with open('file.txt', mode='r') as f:
    print(f.read(2))   						# 读取两个字节的数据
    print(f.read())    						# 读取剩余的全部数据

       readline()方法 

readline()方法可以从指定文件中读取一行数据

with open('file.txt', mode='r', encoding='utf-8') as f:
    print(f.readline())
    print(f.readline())

(2)写文件

       write()方法

 write()方法可以将指定字符串写入文件

string = "Here we are all, by day; by night."		# 字符串
with open('write_file.txt', mode='w', encoding='utf-8') as f:	
    size = f.write(string)					# 写入字符串
    print(size)						# 打印字节数

       writelines()方法

writelines()方法用于将行列表写入文件

string = "Here we are all, by day;\nby night we're hurl'd By dreams, 
each one into a several world."
with open('write_file.txt', mode='w', encoding='utf-8') as f:
    f.writelines(string)

3.文件的定位读写 

       Python提供了一些获取与修改文件读写位置的方法,以实现文件的定位读写。

tell() 获取文件当前的读写位置。

seek() 控制文件的读写位置。

(1)tell()方法

with open('file.txt') as f:
    print(f.tell())					# 获取文件读写位置
    print(f.read(5))				# 利用read()方法移动文件读写位置
    print(f.tell())					# 再次获取文件读写位置

(2)seek()方法 

       Python提供了seek()方法,使用该方法可控制文件的读写位置,实现文件的随机读写。

seek(offset, from)

offset:表示偏移量,即读写位置需要移动的字节数。

from:用于指定文件的读写位置,该参数的取值为0、1、2。

       seek()方法调用成功后会返回当前读写位置。

示例如下:

with open('file.txt') as f:
    print(f.tell())					# 获取文件读写位置
    print(f.read(5))				# 利用read()方法移动文件读写位置
    print(f.tell())					# 再次获取文件读写位置

注意: 

       若打开的是文本文件,那么seek()方法只允许相对于文件开头移动文件位置,若在参数from值为1、2的情况下对文本文件进行位移操作,将会产生错误。

三、文件与目录管理

       os模块中定义了与文件操作相关的函数,利用这些函数可以实现删除文件、文件重命名、创建/删除目录、获取当前目录、更改默认目录与获取目录列表等操作。

删除文件——os.remove(文件名)

文件重命名——os.rename(原文件名,新文件名)

创建/删除目录——os.mkdir(目录名)/os.rmdir(目录名)

获取当前目录——os.getcwd()

更改默认目录——os.chdir(路径名)

获取目录列表——os.listdir(目录/路径)

四、数据维度

维度 

       从广义上讲,维度是与事物“有联系”的概念的数量,根据“有联系”的概念的数量,事物可分为不同维度。

1.基于维度的数据分类

       根据组织数据时与数据有联系的参数的数量,数据可分为一维数据、二维数据和多维数据。

示例:

一维数据

成都,杭州,重庆,武汉,苏州,西安,天津,南京,郑州,长沙,沈阳,青岛,宁波,东莞,无锡

 二维数据

多维数据

 “高三一班考试成绩”:[

                {“姓名”: “刘婧”,

                 “语文”: “124”,

                 “数学”: “137”,

                “英语”: “145”,

                “理综”: “260” };

                {“姓名”: “张华”,

                 “语文”: “116”,

                 “数学”: “143”,

                 “英语”: “139”,

                 “理综”: “263” };

                ……

            ]

2. 一二维数据的存储与读取

(1)数据存储

一维数据:

一维数据呈线性排列,一般用特殊字符分隔,例如:

使用空格分隔:成都 杭州 重庆 武汉 苏州 西安 天津

使用逗号分隔:成都,杭州,重庆,武汉,苏州,西安,天津

使用&分隔:成都&杭州&重庆&武汉&苏州&西安&天津 

 一维数据的存储需要注意以下几点

       同一文件或同组文件一般使用同一分隔符分隔。

       分隔数据的分隔符不应出现在数据中。

       分隔符为英文半角符号,一般不使用中文符号作为分隔符。

       二维数据可视为多条一维数据的集合,当二维数据只有一个元素时,这个二维数据就是一维数据。

二维数据:

       CSV(Commae-Separeted Values,逗号分隔值)是国际上通用的一二维数据存储格式。

CSV格式规范:

以纯文本形式存储表格数据

文件的每一行对应表格中的一条数据记录

每条记录由一个或多个字段组成 字段之间使用逗号(英文、半角)分隔

csv示例:

姓名,语文,数学,英语,理综

刘婧,124,137,145,260

张华,116,143,139,263

邢昭林,120,130,148,255

鞠依依,115,145,131,240

(2)数据读取

       Windows平台中CSV文件的后缀名为.csv,可通过Office Excel或记事本打开

       Python在程序中读取.csv文件后会以二维列表形式存储其中内容

示例:

csv_file = open('score.csv')
lines = []
for line in csv_file:
		line = line.replace('\n','')
		lines.append(line.split(','))
print(lines)
csv_file.close()

 章节例题

1.创建文件data.txt,共100000行,每行存放一个1~100之间的整数

代码如下:

import random
f = open('data.txt','w+')
for i in range(100000):
    f.write(str(random.randint(1,100)) + '\n')
f.seek(0,0)
print(f.read())
f.close()

2. 生成100个MAC地址并写入文件中,MAC地址前6位(16进制)为01-AF-3B
01-AF-3B(-xx)(-xx)(-xx)
-xx
01-AF-3B-xx
-xx
01-AF-3B-xx-xx
-xx
01-AF-3B-xx-xx-xx

代码如下:

import random
import string

def create_mac():
    mac = '01-AF-3B'
    # 生成16进制的数
    hex_num = string.hexdigits
    for i in range(3):
        # 从16进制字符串中随机选择两个数字
        # 返回值是一个列表
        n = random.sample(hex_num,2)
        # 拼接内容 将小写字母转换称大写字母
        sn = '-' + ''.join(n).upper()
        mac += sn
    return mac

# 主函数 随机生成100个mac地址
def main():
    with open('mac.txt','w') as f:
        for i in range(100):
            mac = create_mac()
            print(mac)
            f.write(mac + '\n')

main()


总结

       本章主要介绍了文件与数据维度相关的知识,包括计算机中文件的定义、文件的基本操作、文件与目录管理、数据维度。通过本章的学习,希望读者能了解计算机中文件的意义、熟练地读取和管理文件,并掌握常见的数据组织形式。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值