文件操作基础:
f = open(" 文件路径即文件 " , mode= "模式" , encoding = "编码")
- open:调用操作系统打开文件
- mode:对文件的操作方式
- encoding:文件的编码 --存储编码要统一
- win:gbk
- linux:unicode
- f:文件句柄,操作文件的(相当于把手)
- 路径分为
- 绝对路径
- 相对路径:../放回上一级--推荐使用
文件操作--读:
f = open ( " e:/文件.txt " , mode = " r " , encoding = " utf-8 " )
f.read( ):全部读取
f.read(3):读取三个字符
for line in f : #一行一行读取 , 迭代读取
print(line) #防止内存溢出
f.readline( ):读取一行的内容
f.readlines( ):一行一行读取 , 存储的列表中
绝对路径:F:\a\文件.txt , 从磁盘的根目录查找
相对路径:相对于当前文件进行查找
f.close( ):操作之后要关闭 , 否则占用内存 , 关闭之后就不能读取了
文件操作--写:
f = open ( " e:/文件.txt " , mode = " w " , encoding = " utf-8 " )
- e:/文件.txt , 如果文件不存在 , 就创建一个 , 存在就打开
- f.write( ):w分为两步 , 先清空 , 后写入
文件操作--追加写:
f = open ( " e:/文件.txt " , mode = " a " , encoding = " utf-8 " )
- f.write( ):在文件末尾添加
文件操作--读 , 非文本:
f = open ( " e:/图片.jpg " , mode = " rb ")
- rb , wb , ab :不能指定编码
文件操作--写 , 非文本:
f = open ( " e:/图片.jpg " , mode = " wb ")
- 爬虫 , 文件拷贝
文件操作--追加 , 非文本:
f = open ( " e:/图片.jpg " , mode = " ab ")
- 类似wb
文件操作--先读后写:
f = open ( " e:/文件.txt " , mode = " r+ " , encoding = " utf-8 " )
- 正确:要先读后写 , 写的内容加在后面
- 错误:先写后读 , 光标在0 , 写的内容会根据字符覆盖原有内容
文件操作--清空写读:
f = open ( " e:/文件.txt " , mode = " w+ " , encoding = " utf-8 " )
- 直接读读不到 , 因为光标在末尾
文件操作--追加写读:
f = open ( " e:/文件.txt " , mode = " a+ " , encoding = " utf-8 " )
- 在末尾直接追加
文件操作--with open
with open ( " e:/文件.txt " , mode=" r " , encoding= " utf-8 " ) as f1,
open ( " e:/壁纸.txt " , mode=" w " , encoding= " utf-8 " ) as f2:
文件操作--其他操作:
- f.tell( ):查看光标所在位置 , 查看的是字节 , 返回的就是当前光标位置
- f.seek( ): 移动光标
1. f.seek(0,0):光标移动到开头
2. f.seek(0,1 ):光标在当前位置
3. f.seek( 0,2):光标移动到末尾
4. f.seek(n):按照字节n调节