1、什么是文件?
文件是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位文件的操作核心就:读、写即我们只需要对于进行读写操作,就是对操作系统发起请求,然后由操作系统将用户或者应用程序对文件的读写操作转换成具体的硬盘指令(比如控制盘片转动,控制机械手臂移动来读写数据)
2 为什么要有文件?
因为内存无法永久保存数据,但凡我们想要永久保存数据都需要保存到硬盘中,而操作文件就可以实现对硬件的操作
3、文件的读写模式
控制读写文件内容的结果有两种:t模式text,b模型bytes
1、t模式:文本文件模式
2、b模式:二进制模式
注意:
1、t与b这两种模式均不能单独使用,都需要与r/w/a之一连用
2、默认的内容格式是t
3、只有文本文件才能用t模式,也只有文本文件才有字符编码的概念
4、操作文件的三种模式:
(1)r:read,只读模式
1、只能读,不能写
2、在文件不存在时,会报错,在文件存在的时候会将文件指针移动到开头
1 b.txt内容如下: 2 啊啊啊啊 3 哈哈哈哈 4 呵呵呵呵 5 6 打开文件的2种方法 7 (1) 8 f=open(r'b.txt',mode='rt',encoding='utf-8') 9 (2) 10 with open(r'b.txt',mode='rt',encoding='utf-8')as f: 11 print(f.read()) #将文件的内容全部读出来 12 print(f.readline(),end='')#一行一行读的话 需要在末尾加end = '' 13 print(f.readline(),end='')#end = ''去除print末尾的空格 14 print(f.readline(),end='') 15 print(f.readlines()) #将文件内容打印出列表每个值的后面都有\n 16 print(data) 17 f.close() 18 注意(1)方法必须要关闭,(2)方法不需要关闭
(2)
w:只写模式
1、只能写,不能读
2、在文件不存在时会创建空文件,在文件存在的时候会将文件内容清空
a:只追加写模式
1、只能写,不能读
2、在文件不存在时会创建空文件,在文件存在的时候会将指针移动到文件末尾
(1) f=open('d.txt',mode='at',encoding='utf-8') (2)with open('d.txt',mode='at',encoding='utf-8')as f f.read() f.write('555555\n6666\n') f.writelines(['77777\n','8888888\n','999999999\n']) f.close() #for 循环取值 for line in f: print(line) 可以通过.strip('\n')构造一个有规律的字符串,然后通过.split(‘’)方法将取出的值编程一个一个列表 通过 for 循环 做进一步应用
拷贝文件的操作(with的另外一种用法)
(1)
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)
(2)
with open('e.txt','rb') as f,\
open('j.txt','wb') as f1:
f1.write(f.read())