python中的文件操作
一、文件代开及修改
1. f = open("文件路径", mode="r、w、a", encoding("编码集"))
- 文件路径:可以是相对路径(在写项目时一定要用相对路径)也可以是绝对路径
- mode:r、w、a、rb、wb、ab、r+、w+、a+
- encoding:与文件对应的编码集
- f.close 对文件操作完成后要及时关闭,不然会一直占用系统内存
- 只能打开一个文件
- f 文件句柄,操作文件时的一个”把“
2. with open ("文件路径", mode="r、w、a", encoding("编码集")) as f1,open ("文件路径", mode="r、w、a", encoding("编码集")) as f2
- 面向对象中的上下文管理
- 文件路径:可以是相对路径(在写项目时一定要用相对路径)也可以是绝对路径
- mode:r、w、a、rb、wb、ab、r+、w+、a+
- encoding:与文件对应的编码集
- 可以打开多个文件,也可以同时将一个文件打开两次
- with open不用手动输入f.close
- f 文件句柄,操作文件时的一个”把“
3. 文件修改
import os
- os.remove(f1) 删除文件
- os.rename(f"old",”new“) 给文件重命名(和repalce用法类似)
二、文件的读和写(r、rb、w、wb、a、ab)
rb、rb、ab 不用指定编码集
1. r或rb
- f.read() 一次全部读出来,内存容易溢出,()内可以输入数字 数字代表要读取字符的个数,会随着字符个数换行
- f.readline() 一行一行的读,()内可以输入数字 数字代表要读取字符的个数,数字再大也不会读到下一行
- for i in f: 利用 for 循环一行一行读取所有内容
- f.readlines() 一次将所有内容读取到一个列表中,()内可以输入数字,但是根据数字范围定位到文件的对应行数,读取时只会一行为单位进行
2. w或rb
- 在第一次写的时候会清除文件所有的内容,只要不f.close就会一直继续往后写
- 如果要写的文件不存在会在选定路径里创建一个新的文件
- 写入的时候不能写入数字
3. a或ab
- 在文件的最后追加写
三、 文件的读写、写读、追加写读
1. 读写 r +
- 先写后读 写会从头开始并且会覆盖文件的内容,读会从写的结束位置开始(错误)
- 先读后写 读完后写会在文件最后开始写
2. 写读
- 先读后写,先写后读,都是清空写
- 除非自己手动移动光标不然怎么也读不到文件内容
3. 追加写读
- 先读后写,先写后读,都是在文件后面追加写
四文件的其他操作
- f.tell 查看光标的位置
- 光标的操作 seek
- seek(0, 0) 把光标移动到文件的开始位置
- seek(0, 1) 把光标移动到光标的当前位置
- seek(0, 2) 把光标移动到文件的结束位置
- seek(n) 把光标移动到距离开始位置n个字节的位置