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(),返回当前文件位置 | |