文件操作day14

    技术2022-07-10  136

    文件操作

    文件操作

    1.计算机数据的存储

    计算机的存储系统分为 运行内存 和 硬盘 两种 运存:用来保存程序运行中产生的数据,程序结束会自动销毁 硬盘:硬盘是用来保存文件的,保存在文件中的数据就是保存在硬盘中的。除非手动删除,否则会一直存在

    2.数据持久化

    数据持久化就是将数据以各种形式保存在硬盘中(保存到本地文件中)

    3.文件操作

    文件操作基本步骤:打开文件 -> 操作文件(读、写) -> 关闭文件

    1)打开文件 open(file,mode='r',encoding=None) - 以指定模式打开指定文件返回一个文件对象 说明: a.file - 文件路径,字符串类型 绝对路径:文件的全路径(一般不写绝对路径) 相对路径:只写文件绝对路劲的一部分,另外一部分用特殊符号代替 特殊符号:./ - 表示当前目录,可以省略 ../ - 当前目录的上层目录 b.mode - 打开方式,字符串类型 第一组:控制操作类型 r - 以只读的形式打开(默认的) w - 以只写的形式打开;打开之前先清空原文件 a - 以只写的形式打开;不会清空 第二组:控制数据类型(文本数据-str/二进制数据-bytes) t - 操作的数据是文本数据(默认) b - 操作的数据是二进制数据 注意:每一组只能选一个,两组值进行组合使用 c.encoding - 文本编码方式;直接写'utf-8' 注意:如果打开方式中带b,不能设置encoding 总结:文本文件可以用文本方式打开,也可以用二进制方式打开,二进制文件只能用二进制方式打开(图片、音视频)

    文件的读写操作

    1.文件打开操作

    with open(文件路径,文件打开方式,encoding=文本编码方式) as 文件对象 操作文件对象

    2.文件读操作

    1)文件对象.read() - 从文件读写位置开始读到文件结尾(默认情况下读写位置在开头) 2)文件对象.readline() - 读文本文件的一行内容 3)文件对象.readlines() - 一行一行的读,读完为止。返回的是一个列表,列表的元素是每一行的内容

    3.文件写操作

    文件对象.write(内容)

    数据持久化

    1.数据持久化的基本操作

    a.数据保存在文件中 b.需要数据的时候从文件中读数据 c.当数据发生改变时,对保存数据的文件进行更新

    统计运行次数 # 先创建一个文件保存次数0 with open('./text.txt',encoding='utf-8') as f: count = int(f.read()) count += 1 print(count) with open('./text.txt', 'w', encoding='utf-8') as f: f.write(str(count)) 添加学生姓名 # 先创建一个空文件 with open('./student.txt', 'a', encoding='utf-8') as f: x = input('name:') f.write('name:' + str(x) + '\r')

    字典和列表的数据持久化

    1.字典和列表的写操作

    字典和列表的写操作:将容器格式的字符串转换成对应容器型数据类型(eval)

    以列表形式保存学生数据,每个学生的数据是一个字典 # 先创建一个文件保存一个空列表 def add_student(): name = input('姓名') age = input('年龄') tel = input('电话') stu = {'姓名:', name, '年龄:', age, '电话', tel} with open('./student.txt', 'r', encoding='utf-8') as f: new_student = eval(f.read()) new_student.append(stu) with open('./student.txt', 'w', encoding='utf-8') as f: f.write(str(new_student)) add_student()

    json

    1.什么是json

    1)存在的意义 json就是不同编程语言之间进行数据交流的一种通用格式 2)概念 json是一种数据格式: a.一个json有且只有一个数据 b.这个数据是json支持的数据类型的数据 3)json支持的数据类型:数字类型、字符串、布尔、数组、字典/对象、null(空值) 数字类型:所有的数字 字符串:用双引号引起来的文本数据(支持转移字符) - 必须是双引号 布尔:只有true和false 数组:相当于python的列表 字典:相当于python的字典 - key只能是字符串 null:相当于python的None

    2.json转python

    数字类型 - 数字类型 字符串 - 字符串(可能会变成单引号) 布尔 - 布尔(首字母会变成大写) 数组 - 列表 字典 - 字典 空值(null) - 空值(None) import json json.loads(字符串) - 将json格式的字符串转换成python对应的数据(字符串的内容必须满足json格式) json.loads('"abc"') json.loads('true') json.loads('[1,2,3]')

    3.python转json

    int/float - 数字 字符串 - 双引号的字符串 布尔 - 布尔(首字母小写) 列表/元组 - 数组 字典 - 字典 None - null json.dumps(数据) - 将指定的python数据转换成json格式的字符串
    Processed: 0.016, SQL: 9