python读写文件
with open("out_insert_sql.sql","w",encoding="utf-8") as f:
f.write(SQL+'\n')
1、打开模式
| 打开方式 | 指针位置 | 读取的文件类型 |
| r | 只读(默认模式) | 指针在文件开头,文件不存在则报错 |
| rb | 二进制格式只读 | 指针在文件开头,文件不存在则报错 |
| r+ | 可读可写 | 指针在文件开头,文件不存在则报错 |
| rb+ | 二进制格式可读可写 | 指针在文件开头,文件不存在则报错 |
| w | 只写 | 文件存在,则覆盖;不存在,则创建 |
| wb | 二进制格式只写 | 文件存在,则覆盖;不存在,则创建 |
| w+ | 可读可写 | 文件存在,则覆盖;不存在,则创建 |
| wb+ | 二进制格式可读可写 | 文件存在,则覆盖;不存在,则创建 |
| a | 追加 | 文件存在,指针在文件尾追加;不存在,则创建 |
| ab | 二进制格式追加 | 文件存在,指针在文件尾追加;不存在,则创建 |
| a+ | 可读可写 | 文件存在,指针在文件尾追加;不存在,则创建 |
| ab+_ | 二进制格式可读可写 | 文件存在,指针在文件尾追加;不存在,则创建 |
2、文件打开方式
- with open('E:/test.txt','r') as f
3、文件读写定位操作
| 方法 | 用法 | 注意 | |
| 读 | f.read(size) | 如果没有size即f.read()一次性读取文件全部内容,返回类型str;如果有size即f.read(50)读取最多的字节内容 | 1.文件很小,可一次性读取,文件较大,超过内存大小,内容爆掉 2.文件过大,可用f.read(size),x为每次最多读取size字节的内容 3.如果是配置文件,调用 readlines()最方便 |
| f.readline() | 每次读取一行内容,返回类型str | | |
| f.readlines() | 一次读取所有内容并按行返回list | | |
| 写 | f.write() | 写文件 | 将字符串写入文件,如果写入结束,需要在字符串后面加上"\n" |
| 定位 | f.seek(offset,from_what) | f.seek(2,0)读取位置向后移动2个字符 | from_what值为文件的开始位置,可以省略;offset为偏移量 |
| 当前位置 | f.tell() | f.tell(),返回当前文件位置 | |