1. 文件操作 open 打开 f = open(文件路径, mode="模式", encoding="编码格式") 最最底层操作的就是bytes 打开一个文件的时候获取到的是一个文件句柄.
绝对路径 从磁盘根目录开始寻找 相对路径 相对于当前程序所在的文件夹 ../ 上一层文件 文件夹/ 进入xxx文件夹
2. mode: r: 读取,只读. 读取文件的相关操作 1. read() 默认: 读取文件内容(全部) read(n) 读取n个字符 2. readline() 读取一行 3. readlines() 读取全部. 返回列表 (最重要)4. for line in f: 每次读取一行内容 w: 写入. 只写 创建文件 会清空文件 a: 也可以创建文件 追加写 r+: 对于文件而言. 应该有的操作就两个:读, 写 读写操作 w+: 写读操作 a+: 追加写读
所有带b的表示直接操作的是bytes, 当处理非文本文件的时候. rb wb
ab: 断点续传
r+b w+b a+b
3. 文件操作中关于文件句柄的相关操作 seek() 移动光标 f.seek(0) 移动到开头(最多) f.seek(0, 2) 移动到末尾 seek:两个参数 1. 表示偏移量 2. 从xxx开始偏移, 默认0, 开头 1, 当前位置 2, 末尾
tell 返回光标所在的位置
4. 文件修改, 实际操作(重点)
f = open("水果.txt", mode="r", encoding="utf-8") line = f.readline().strip() # 第一行内容, 编号,名称,价格,数量,哈哈 title = line.split(",") # [编号,名称,价格,数量,哈哈] lst = [] i = 0 for line in f: # 1,香蕉,1.85,50 dic = {} # 每行都是一个字典 line = line.strip() # 去掉空白 \n 1,香蕉,1.85,50 data = line.split(",") # [1, 香蕉, 1.85, 50] for i in range(len(title)): dic[title[i]] = data[i] lst.append(dic) print(lst)