文件操作
1.文件的概念
就是操作系统暴入给用户操作硬盘的快捷方式
比如双击一个文件 就是冲硬盘将数据加载到内存
ctrl+s保存文件 就是将内存的数据刷到硬盘保存
2.代码打开文件的两种方式
第一种:
f = open(文件路径, 读写模式,encoding='utf8')
f.close()
# open打开文件填入文件路径,读写模式(r w a)选择 最后转进制
第二种:
with open('a.txt', 'r', encoding= 'utf8') as f1:
with子代码
# with上下文管理好处在于子代码运行结束自动调用close方法关闭 资源
"""
open方法的第一个参数是文件路径 并且撬棍跟一些字母的组合会产生特殊的含义导致路径查找混乱 为了解决该问题可以在字符串的路径前面加字母r
D:\a\n\t
r'D:\a\n\t'
以后涉及到路径的编写 推荐加上r
with支持一次性打开多个文件
with open() as f1,open() as f2,open() as f3:
子代码
"""
文件读写模式
分为三种模式
'r' 'w' 'a'
'r'只读模式:
只能读不能写,文件路径不存在会直接报错,文件路径存在就正常 读写内容
'w'只写模式:
只能写不能看,文件路径不存在自动创建,文件路径存在会先清空 然后在写入
'换行符需要自己加,做数据对比要注意'
'a'只追加模式
文件末尾追加数据,文件路径存在会自动创建,文件路径存在自动在末尾追加内容
"""
当我们在编写代码的时候 有些部分不知道写什么具体代码 但是也不能空着不写
这个时候可以使用关键字
pass
...
只补全语法不执行功能 本身没有任何的含义
"""
文本操作模式
t 文本模式
默认的模式 r w a 全称其实是rt wb at
1.只能操作文本型文件,其他不行
2.读写都是以字符为单位的
3.需要指定encoding参数 如果不知道就会采用计算机默认编码
b 二进制模式
也可以叫做bytes模式
1.不是默认的模式,需要自己指定rt wb at
2.可以操作任意类型的文件
3.读写都是bytes单位
4.不需要encoding参数 因为已经是二进制了,不需要编码了
文件诸多方法
1.read()
一次性读取文件内容 并且指示标停留在文件末尾 继续读取则没有内容
缺点是当文件内容较多的时候,此方法会造成计算机内存溢出
括号内可以填写数字 在文本模式下 表示读取几个字读
2.for循环
一行行读取文件 避免内存溢出现象发生
3.readline()
一次只读一行
4.readlines()
一次性读取文件内容 会按照行数组成列表的一个个数据值
5.readable()
判断文件是否具有读数据的能力
6.write()
写入数据
7.writeable()
判断文件是否有写数据能力
8.writelines
接受一个列表 一次性将列表所有数据值写入
9.flush()
将内存的文件立马刷到硬盘 等同于CTRL+s
文件内指示标移动方法
with open(r'a.txt', 'rb') as f:
print(f.read())
f.seek(0,0)
print(f.read())
f.seek(0, 0)
print(f.read())
# print(f.read(2).decode('utf8'))
# f.seek(-1, 2)
# print(f.tell()) # 返回光标距离文件开头产生的字节数
"""
seek(offset, whence)
offset是位移量 以字节为单位
whence是模式 0 1 2
0是基于文件开头
文本和二进制模式都可以使用
1是基于当前位置
只有二进制模式可以使用
2是基于文件末尾
只有二进制模式可以使用
"""
# print(f.read(3).decode('utf8'))
标签:文件,read,路径,模式,print,操作,open
From: https://www.cnblogs.com/lsl1/p/16773371.html