文件操作
r 只读模式 , w 只写模式 , a 追加写模式 , r+ 读写模式(重点) , w+ 写读模式(不常用) , a+ 追加读写模式(不常用) , 文件的常用操作 , 修改文件内容
read 只读(用"r"表示)
# f 叫文件句柄. 我们通过这个句柄去操纵这个文件.
用法
f.open("文件名",mode="r",encoding="utf-8") content=f.read print (content)
绝对路径,从电脑根目录进行查找,此处是从d盘 f=open("d:/day01/first.py",mode="r",encoding="UTF-8") content=f.read() print (content)
readline的用法,分行读出来(readline ,只能一行一行的读)
# 中国 # 美国 # 俄罗斯 # 孟加拉 # 法国 f=open("弄啥呢.py",mode="r",encoding="UTF-8") content1=f.readline().strip() content2=f.readline().strip() print (content1) print (content2) 结果:中国 美国
readlines用法 , (能一次读多行)
f=open("t1.txt.py",mode="r",encoding="utf-8")
lst=f.readlines()
for line in lst:
print (line)
write只写 (用"w"表示)
用法
f=open("文件名",mode="w",encoding="utf-8") f.write("写入内容") f.colse() #结束
a 追加写模式
f=open("888.py",mode="a",encoding="utf-8") f.write("信不信由你,反正我信了。") f.close()
r+读写模式(重点)
先读出来,然后再写进去
f=open("888.py",mode="r+",encoding="utf-8")
content=f.read()
print (content)
f.write("成都")
r+里面还要注意光标
注意光标的位置
f = open("888.py", mode="r+", encoding="UTF-8") f.seek(6) # 移动的是字节单位,在UTF-8文件中. 如果是中文移动的必须是3的倍数 f.write("广德")
f = open("888.py", mode="r+", encoding="UTF-8")
# 把"葫芦娃" 写到结尾. 然后把所有内容读取出来
# 先把光标移动到结尾.
f.seek(0, 2) # 移动到结尾0,2
# 写入内容
f.write("葫芦娃")
# 把光标移动到开头
# f.seek(0) 把光标移动到最前面用0
# 读取内容
content = f.read()
print(content)
f = open("888.py", mode="r+", encoding="UTF-8") f.seek(15) # f.truncate() # 如果没有参数. 根据光标当时所在的位置. 保留光标前面的内容.后面的内容删除 f.truncate(5) # 如果给了参数. 会把文件从头到参数之间的内容保留.其他的全部删掉 f.flush() f.close()
文件修改
import os with open("888.py", mode="r", encoding="UTF-8") as f1,\ open("888new.py", mode="w", encoding="UTF-8") as f2: for line in f1: line = line.replace("冰糖葫芦", "大白梨") f2.write(line) os.remove("888.py") os.rename("888new.py", "888.py")