文件操作
#文件操作
# 1数据持久化
# 计算机存储空间分为:运行内存和磁盘两种
# 程序中产生的数据默认都是保存在运行内存的,存储在运行内存中的数据在程序结束后会自动销毁
# 如果将数据存储到磁盘中,那么数据除非手动删除或者磁盘损坏,否则会一直存在
# 数据持久化指的就是将程序中的数据以文件的形式保存到磁盘中
a=100
b=['abc','man','xy']
# 2.常见数据持久化工具
# 数据库(.db、splite)、json文件(.json)、xml文件(.xml)、plist文件(.plist)、普通文本文件(.txt)
# Excel文件(.xls、.xlsx)、csv文件(.csv)
# 文件操作 - 操作文件内容
# 1.文件操作基本流程
# 打开文件 - > 操作文件(读操作、写操作)
# 2.打开文件
# open(file,mode='r',*,encoding=None) - 以指定方式打开指定文件,返回一个文件对象
# a.参数file - 文件路径,用来确定打开的是哪个文件
# 绝对路径:文件在计算机中的全路径
# 相对路径:用.表示当前目录(当前目录指的当前代码文件所在的目录)
# 用..表示当前目录的上层目录
# 注意:使用相对路径的时候必须保证文件在工程中
# 参数mode - 字符串,文件打开方式,决定打开文件后能什么(读or写?),
# 决定操作文件的时候数据的类型(二进制or字符串)
# 第一组值: - 决定打开文件后能做什么(读or写?)
# r - 只读
# w - 只写;打开的时候会清空原文件(覆盖)
# a - 只写;打开的时候保留原文件内容(追加)
# 第二组值 - 决定操作文件的时候数据的类型
# t - 字符串(str)
# b - 二进制(bytes)
# 注意:给你mode赋值的时候必须在两组值中每一组选一个,如果第二组不选就相当于选的't'
# 'r'=='rt'=='tr'
# 'w'=='wt'=='tw'
# 'rb'=='br'
# b.所有的文件都可以以b的方式打开,但是只有文本文件才能用t打开
# 以读的方式打开一个不存在的文件会报错
# c.以写的方式打开一个不存在的文件程序不会报错,并且会自动创建这个文件。
# open(r'D:\下载\老师\day13-三大神器(了解)\无敌.txt')
# open(r'.\16.py')
# open(r'..\yy\basis\15.py')
# 打开方式
# a.r-只读
# f=open(r'D:\下载\老师\day13-三大神器(了解)\无敌.txt','r')
# f.read()
# f=open(r'D:\下载\老师\day13-三大神器(了解)\无敌.txt','w')
# f.write('ABC')
# f=open(r'D:\下载\老师\day13-三大神器(了解)\无敌.txt','a')
# f=open(r'D:\下载\老师\day13-三大神器(了解)\无敌.txt','rt')
# ef=f.read()
# print(type(ef))
# 3.encoding - 文件文本编码方式,使用的时候一般设置'utf-8'或者'gbk'
# 注意:a,一般不需要设置这个值,默认和电脑默认编码方式一致.
# 如果是以b的方式打开文件,一定不可以给encoding赋值
# 3.操作文件
# 1)读操作
# 文件对象.read() - 从读写位置开始读到文件结尾(读写位置默认在文件开头,一次读完)
# 文件对象.readline() - 从读写位置开始到一行结束(一次读一行,只支持文本文件)
# 2)写操作
# 文件对象.write(数据) - 将指定数据写入文件
# f=open(r'D:\下载\老师\day13-三大神器(了解)\无敌.txt','a')
# nums=[34,54,65,89]
# f.write(str(nums))
# f.close()
# #数据持久化方法
# 写一个程序打印当前程序运行的次数
# 1.数据持久化的步骤
# 第一步:确定需要持久化的数据
# 第二步:创建合适的文件并且确定文件的初始内容
# 第三步:在程序中需要这个数据的时候,必须从文件中获取
# 第四步:当这个数据发生改变以后,必须将最新的数据更新到文件中
# f=int(open(r'D:\下载\老师\day13-三大神器(了解)\无敌.txt').read())
# f+=1
# print(f)
# open(r'D:\下载\老师\day13-三大神器(了解)\无敌.txt','w').write(str(f))
# name=input('请输入学生姓名')
# all=open(r'D:\yy\basis\stu.txt').read()
# all+=name+''
# print(all)
# open(r'D:\yy\basis\stu.txt','a').write(f'{name}')
# name=input('请输入学生姓名')
# all=eval(open(r'D:\yy\basis\.idea\stu2.txt').read())
# all.append(name)
# print(all)
# open(r'D:\yy\basis\.idea\stu2.txt','w').write(str(all))