0. 文件
概念:数据存放的
容器
作用:
持久性
地存储数据组成
1. 文件名 注意:如果是同级目录下,不允许同名文件存在2. 扩展名 注意:(1) 一般不同的扩展名,对应着不同的文件格式 (2) 不同的文件格式,对应着不同的存储约定,方便程序处理3. 文件内容 (1) 文本文件 (2) 二进制文件
1. 使用流程
打开
语法:
open("文件", "模式")
文件操作.png
模式
模式.png
读写
定位
1. seek""" 作用:操作文件指针位置 语法:f.seek(offset, whence) 参数:offset: 偏移量; whence: 0, 开头, 1, 当前位置, 2, 文件末尾 注意:文本文件操作模式下,只能写 0; 二进制文件操作模式下,可以写 1, 也可以写 2 """f = open("a.txt", "r") f.seek(2) print(f.read()) f.close() file = open("a.txt", "rb") file.seek(-2, 2) print(file.read()) f.close()
2. tell""" 作用:查看当前文件指针位置 语法:f.tell() """f = open("a.txt", "r") print(f.tell()) f.seek(2) print(f.read()) print(f.tell()) f.close()
读
1. read""" 作用:读取当前文件指针所在位置后面所有内容 语法:f.read([n]) 参数:n, 字节数, 默认是文件内容长度 注意:文件指针会自动向后移动 """f = open("a.txt", "r") f.seek(2) print(f.read(2)) print(f.tell()) f.close()
2. readline""" 作用:读取一行数据 语法:f.readline([limit]) 参数:limit, 限制的最大字节数 注意:文件指针会自动向后移动 """f = open("a.txt", "r") print(f.tell()) content = f.readline() print("content = %s" % content, end="") print(f.tell()) content = f.readline() print("content = %s" % content, end="") print(f.tell()) content = f.readline() print("content = %s" % content, end="") print(f.tell()) content = f.readline() print("content = %s" % content, end="") print(f.tell()) content = f.readline() print("content = %s" % content, end="") f.close()
3. readlines""" 作用:会自动地将文件按换行符进行处理 语法:f.readlines() 返回值:列表,元素为文件每一行字符 """f = open("a.txt", "r") lines = f.readlines() print(lines)for i in lines: print(i, end="") f.close()
4. for inimport collections f = open("a.txt", "r") print(isinstance(f, collections.Iterator))for i in f: print(i, end="") f.close()
5. 判断是否可读 f = open("a.txt", "r") if f.readable(): content = f.readlines() for i in content: print(i, end="") f.close()
6. 读取方法选择1. readline 和 for in 迭代器:节省内存,性能较低,适合大文件读取2. read 和 readlines:占用内存,性能较高,适合小文件读取
写
1. write f = open("a.txt", "a") f.write("abc") f.close()
2. 判断是否可写 f = open("a.txt", "a")if f.writable(): f.write("abc") f.close()
关闭
1. close (1) 可以释放系统资源 (2) 会立即清空缓冲区的数据内容到文件 f = open("a.txt", "a") f.write("abc") f.close()
1. flush (1) 立即清空缓冲区的数据内容到文件 f = open("a.txt", "a") f.write("abc") f.flush() f.close()
作者:小熊bliving
链接:https://www.jianshu.com/p/f4aa0c97d0db