文件操作
1. 文件操作的函数
open(文件名(路径), mode="?", encoding="字符集")
绝对路径: 从磁盘根目录寻找,或者从互联网寻找一个路径
相对路径:(用的多) 相对于程序当前所在 的文件夹 . . / 表示返回上一级文件夹
f = open("哈哈哈哈哈", mode="r", encoding="UTF-8")
s = f.read()
print(s)
f.close() # 如果没有这句话, 你在下面的程序中如果删除这个文件. 就会报错
f = open("e:/abc/里皮.txt", mode="r", encoding="gbk")
s = f.read()
print(s)
f.close()
2. 模式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b
r 读
f = open("呵呵呵", mode="r", encoding="utf-8")
for line in f: # 文件是一个可迭代对象
print(line.strip()) # 一行一行的处理数据
lst= f.readlline() #只读一行
print(lst)
f.close()
w 写,操作就会清空文字 , 如果文件不存在,就会创建文件
f=open("阿西吧", mode="w", encoding="utf-8")
f.write("呀! 养狗了没有?\n") #清空源文件
f.write("养狗四米大 ") #接着上面的写
f.flush()
f.close()
a 后面追加
#写的时候. 换行需要手动控制 \n
f = open("阿西吧", mode="a", encoding="utf-8")
f.write("四米大?")
f.write("四米大")
f.flush()
f.close()
r+ 不论你读取了多少内容.光标的位置在哪儿,写入的时候都是在结尾写入, 除非上来就写入, 这时写入是在开头
f = open("阿西吧", mode="a", encoding="utf-8")
s = f.read(3) # 读取三个字符
print(s) f.write("不养了. 送人") # 在末尾写
close(f)
b rb, wb, ab, bytes如果处理的是非文本文件, mode里如果有b.
f = open("c:/pdd.jpg", mode="rb") # 这里不能写encoding
e = open("e:/pdd.jpg", mode="wb")
for line in f:
e.write(i)
flush()
f.close()
e.close()
3. 常用的操作
1. 光标(seek)*
f = open("阿西吧", mode="r", encoding="utf-8")
for line in f:
print(line.strip())
f.seek(0) # 移动到开头
for line in f:
print(line.strip()) #重头再打一遍
f.close()
seek(0) 开头
seek(0,2) 结尾
2. tell() 光标的位置
3. truncate 截断文件,不常用
4. 修改文件
1. 引入os模块
2. 打开目标文件, r
3. 打开文件副本, w
4. 从r中读取内容进行修改. 写入到副本中
5. 删除源文件
6. 重命名副本
import os
with open("alex昨天又干嘛去了", mode="r", encoding="utf-8") as f1, \
open("alex昨天又干嘛去了_副本", mode="w", encoding="utf-8") as f2:
for line in f1:
line = line.replace("alex", "sb")
f2.write(line)
# 删除文件
os.remove("alex昨天又干嘛去了")
#改文件名
os.rename("alex昨天又干嘛去了_副本","alex昨天又干嘛去了")

浙公网安备 33010602011771号