Python文件操作

常见的3种操作模式,r、w、a

#file in 2.X
# file mode r = read ,w = write , a = append
# r  模式 就是打开一个文件,只能读不能写
print(open("lyric").read())
data = open("lyric").read()
print(data.replace("Somehow","HAHAHAHA"))   #写入失败
# w  模式 意味着创建一个文件,旧文件会被覆盖
f = open("lyric", mode="w")
data = f.read()
data = data.replace("Somehow","HAHAHAHA")
print(data)
f.write(data)                 #以上操作会将文件中所有内容覆盖
f.write("What happend...")      #重新写入数据
f.write("What happend...")
f.write("What happend...")
# a 模式 以追加的形式打开文件,会写在文件最后
f = open("lyric", mode="a")
f.write("
 What happend...")
f.close()

修改文件:

# @1 方式 
#先打开改掉内容之后再关闭
f = open("lyric",mode="r",encoding="utf-8")
data = f.read()
data = data.replace("Somehow","HAHA")
f.close()
#再以覆盖的模式打开再写入
f = open("lyric",mode="w",encoding="utf-8")
f.write(data)
f.close()
弊端:占用内存
# @2 方式
import os
f = open("lyric",mode="r",encoding="utf-8")
f_new = open("lyric_new",mode="w",encoding="utf-8")
#循环读,如果遇到则修改;最后写入到一个新文件中
for line in f:
    if "Somehow" in line:
        line = line.replace("Somehow","HAHAHA")
    f_new.write(line)
f.close()
f_new.close()
os.remove("lyric")                  #删除原文件
os.rename("lyric_new","lyric")      #重命名新文件
弊端:占用硬盘

其他操作:

#r+  模式   追加+读,可以定长修改
f = open("lyric","r+",encoding="utf-8")     #encoding如果不声明,默认使用操作系统的编码来解释文件
print(f.read())
f.write("---------test")
f.close()
#w+  模式   写+读,清空原文件再写入新文件
f = open("lyric","w+",encoding="utf-8") 
print(f.read())
f.write("---------test")
f.close()
#小技巧
f = open("lyric","r",encoding="utf-8")
print('cursor:',f.tell())       #打印光标,输出的数字是第n个字符
f.seek(10)                      #移动10个光标(字节)
f.read(6)                       #读取6个字符
f.flush()                       #将写入内存的数据写入硬盘
f.close()
#a+  模式    追加+读   
#rb  模式    以二进制模式打开文件,不能声明encoding
#wb  模式    以二进制写入文件,必须写入bytes格式,需要encoding
原文地址:https://www.cnblogs.com/zhaomeng/p/10989738.html