文件操作的基础
1.文件操作的初始
-
利用python代码写一个软件,去操作文件
- 文件路径:pash
- 打开模式:读,写,追加,读写,写读等
- 编码方式:utf-8,gbk等
-
基本格式
f1 = open('d:\主妇空姐模特联系方式.txt',encoding='utf-8',mode='r') content = f1.read() print(content) f1.close() -
代码的解释
open 是内置函数,open底层调用的是操作系统的借口。 f1 变量,也称文件句柄,对文件进行的任何操作,都得通过文件句柄f1.的方式 encoding:可以不写,不写参数,默认使用编码就是操作系统的编码 windows :gbk linux: utf-8 mac : utf-8 f1.close()关闭文件 -
文件操作的三部曲:
- 打开文件
- 对文件句柄进行相应操作
- 关闭文件
2.文件操作的读
-
读的模式
-
r , rb, r+,r+b 四种模式
-
r
- read() 全部读出来
- read(n) 按照字符读取
- readline() 读出一行
- readlines 返回一个列表,列表中每个元素是原文件的每一行
-
for 循环读出
-
rb :操作的是非文本的文件;图片,音频,视频
read() 全部读出来 f = open("a.txt",mode="r",encoding="utf-8") content = f.read() print(content) f.close() read(n) 按照字符读取 f = open("a.txt",mode="r",encoding="utf-8") content = f.read(10) print(content) f.close() readline() 读出一行 f = open("a.txt",mode="r",encoding="utf-8") content = f.readline() print(content) f.close() readlines 返回一个列表,列表中每个元素是原文件的每一行 f = open("a.txt",mode="r",encoding="utf-8") content = f.readlines() print(content) f.close() f = open("a.txt",mode="r",encoding="utf-8") for i in f: print(i) f.close()
-
3.文件操作的写
-
w,wb, w+,w+b 四种模式
# 没有文件,创建文件,写入内容 f = open('b.txt',encoding='utf-8',mode='w') f.write('随便写一点') f.close() # 如果文件存在,先清空原文件内容,在写入新内容 f = open('文件的写',encoding='utf-8',mode='w') f.write('太白最帅....') f.close() # wb # f = open('美女.jpg',mode='rb') # content = f.read() # f.close() # # f1 = open('美女2.jpg',mode='wb') # f1.write(content) # f1.close()
4.文件操作的追加
-
a, ab, a+,a+b 四种模式
# 没有文件创建文件,追加内容 f = open('文件的追加',encoding='utf-8',mode='a') f.write('太白最帅....') f.close() # 有文件,在原文件的最后面追加内容。 f = open('文件的追加',encoding='utf-8',mode='a') f.write('大壮,舒淇,b哥,雪飞') f.close()
5.文件操作的其他模式
-
读并追加,顺序不能错
f = open("a.txt",mode= "r+",encoding="utf-8") content = f.read() print(content) f.write("鸡汤都是吃鸡的人,流传下来的言语") f.close() # 错误实例 f = open("a.txt",mode= "r+",encoding="utf-8") f.write("鸡汤都是吃鸡的人,流传下来的言语") content = f.read() print(content) f.close()
6.文件操作的其他功能
-
总结:
-
读, 四种模式 :r, rb ,r+ ,r+b
-
写, 四种模式 :w,wb,w+,w+b
-
追加,四种模式 : a, ab, a+,a+b
-
相应的功能:对文件句柄的操作:read read(n) readline() readlines() write()
# tell 获取光标的位置 单位字节。 f = open('文件的读写', encoding='utf-8') print(f.tell()) content = f.read() print(content) print(f.tell()) f.close() # seek 调整光标的位置 f = open('文件的读写', encoding='utf-8') f.seek(7) content = f.read() print(content) f.close() flush 强制刷新 f = open('文件的其他功能', encoding='utf-8',mode='w') f.write('fdshdsjgsdlkjfdf') f.flush() f.close()
-
7.打开文件的另一种方式
-
优点1;不用手动关闭文件句柄
with open("a.txt",mode="r",encoding="utf-8")as f: print(f.read) -
优点2:
with open('文件的读', encoding='utf-8') as f1,\ open('文件的写', encoding='utf-8', mode='w')as f2: print(f1.read()) f2.write('hfdsjkghkajhsdjg')
8.文件操作的改
-
文件操作改的流程:
- 已读的模式打开原文件。
- 以写的模式创建一个新文件。
- 将原文件的内容读出出来修改成新内容,写入新文件。
- 将原文件删除
- 将新文件重名成原文件
-
具体代码
import os with open('a.txt',mode="r",encoding="utf-8")as f1,\ open("b.txt",mode="w",encoding="utf-8")as f2: old_content = f1.read() new_content = old_content.replace("alex","SB") f2.write(new_content) os.remove("a.txt") os.rename("b.txt","a.txt") import os with open("a.txt",mode="r",encoding="utf-8") as f1,\ open("b.txt",mode="w",encoding="utf-8")as f2: for i in f1: new_content = i.replace("SB","alex") f2.write(new_content) os.remove("a.txt") os.rename("b.txt","a.txt") 有关清空的问题: 关闭文件句柄,再次以w模式打开此文件时,才会清空。 with open('文件的写', encoding='utf-8',mode='w') as f1: for i in range(9): f1.write('恢复贷款首付款'
浙公网安备 33010602011771号
ヾ(≧O≦)〃嗷~