一:什么是文件?
文件是操作系统为用户或者应用程序提供的一个读写硬盘的虚拟单位,
文件操纵的核心就是:读,写。
即我们只需要对于进行读写操作,就是对操作系统发起请求,然后由操作系统将用户或者应用程序
对文件的读写操作转换成具体的硬盘指令(比如控制盘片转动,控制机械手臂移动来读写数据)
二:为什么要有文件?
因为内存无法永久保存数据,但凡我们想要永久保存数据都需要保存硬盘中。而操作文件就可以实现对硬盘的操作。
三:如何使用文件?
1,把内存中的数据保存到硬盘中。
2,把硬盘中的数据读取到内存中。#rawstring r表是原生字符串
f=open(r'E:\SH_fullstack_s2\day08\a.txt',mode='r') # 向操作系统发起请求,要求操作系统打开文件
3,data=f.read() # 向操作系统打开发起读请求,会被操作系统转成具体的硬盘操作,将内容由硬盘读入内存
4,f.close() #向操作系统发起请求,要求操作系统关闭文件,回收系统资源
文件操作
# 总结:
#1、打开文件
#2、读写
#3、关闭
四:绝对路径和相对路径
#1、绝对路径:从盘符(C:\\ E:\\ D:\\)开始写一个完整的路径
#2、相对路径:相对于当前执行文件所在的文件夹开始找
f=open(r'a\a.txt)
五:# 控制读写文件内容的结果有两种:t模式text,b模型bytes
#注意:
#1、t与b这两种模式均不能单独使用,都需要与r/w/a之一连用
#2、默认的内容格式是t
#3、只有文本文件才能用t模式,也只有文本文件才有字符编码的概念
六:# 操作文件的基础模式有三种:
#1、r,默认的
#2、w
#3、a
1,#r:read,只读模式
#1、只能读,不能写
#2、在文件不存在时,会报错,在文件存在的时候会将文件指针移动到开头
# f=open(r'b.txt',mode='rt',encoding='utf-8')
# data1=f.read()#将文件全部读取出来
# f.close()
# f=open(r'b.txt',mode='rt',encoding='utf-8')
# # print(f.readable())#判断文件是否可以读
# # print(f.readline(),end='')#readline一行一行读取文件,
# # print(f.readline(),end='')
# lines=f.readlines()#将文件全部读取出来,并且保存为列表模式
# print(lines)
# f.close()
2,#w:只写模式
#1、只能写,不能读
#2、在文件不存在时会创建空文件,在文件存在的时候会将文件内容清空
# f=open(r'c.txt',mode='wt',encoding='utf-8')
# # f.write('你好啊我的天\n你好啊我的地\n啊啊啊啊啊啊\n')
# # f.write('4444\n')
# # f.write('5555')
# lines=['1111\n','2222\n','33333\n']
# # for line in lines:
# # f.write(line)
# f.writelines(lines)#writelines可以将列表中的多个元素写入
# f.close()
3,#a:只追加写模式
#1、只能写,不能读
#2、在文件不存在时会创建空文件,在文件存在的时候会将指针移动到文件末尾
# f=open('d.txt',mode='at',encoding='utf-8')
# f.write('555555\n6666\n')
# f.writelines(['77777\n','8888888\n','999999999\n'])
# f.close()
4:#b:二进制模式
#注意:
#1、一定不能指定字符编码,只有t模式才与字符编码有关
#2、b是二进制模式,是一种通用的文件读取模式,因为所有的文件在硬盘中都是以二进制形式存放的
七:# 上下文管理
# with open('e.txt','rb') as f,open('j.txt','wt',encoding='utf-8') as f1:
# #文件的操作
# src_data=f.read()
# res=src_data.decode('utf-8')
# # print(res,type(res))
# f1.write(res)
with open('e.txt','rb') as f,\
open('j.txt','wb') as f1:#可以同时对多个文件进行操作
八: