file=文件位置 mode=查看方法,r只读 w只写 a添加 r+读写 w+写读 目前只接触了这几个
1.查看文件
全部读出
f = open(file='C:/Users/Administrator/Desktop/123.txt',mode="r",encoding="utf-8")
data = f.read()
print(data)
f.close()
一行一行读且有换行
for line in f : #一行一行的读取数据且有空行相隔
print (line)
f.close()
2.创建一个文件并写入一行数据(如果已有同名文件,删除全部内容后写入新内容)
f = open(file='C:/Users/Administrator/Desktop/333.txt',mode="w",encoding="utf-8") #创建一个新文件写入一行信息
f.write("gxdddddd 1234567 5252525252")
f.close()
在原有信息后添加新信息
f = open(file='C:/Users/Administrator/Desktop/333.txt',mode="a",encoding="utf-8") #在原有信息添加新信息
f.write("\nwgwgw 1234567 5252525252") #添加\n来换行,在最后添加
f.close()
读写(先读再写)
f = open(file='C:/Users/Administrator/Desktop/123.txt',mode='r+',encoding = "utf-8")
data = f.read()
print(data)
f.write("\ngxd 123 321")
f.close()
写读(先写在读) 很少用
f = open(file="C:/Users/Administrator/Desktop/123.txt",mode="w+",encoding = "utf-8")
data = f.read()
print(data)
f.write("\ngxd 123 321")
f.close()
3 其他文件操作
f.flush() #强制把内存刷到硬盘 保存当前内容
f.readable() #判断文件是否可读
f.writeable() #判断文件是否可写
f.readline() #一行一行读,每行/n停止
f.fell() #判断光标位置 按字节来找
f.seek("数字") #移动光标位置 按字节来找 utf-8中一个汉子占3个字节 GBK2个字节
f.seekable() #判断文件是否可seek (二进制文件可以SEEK)
f.truncate() #从当前位置截断文件 只留下前面的后面删除
f.truncate("数字") #从头开始截取几个字节的内容
4.批量修改文件中相同内容
(1)这个在系统硬盘中修改内容
import os
f_name = "C:/Users/Administrator/Desktop/123.txt"
f_new_name = "%s.new.txt" %f_name
old_str = "gxd"
new_str = "wsc"
f = open (f_name,"r",encoding = "utf-8")
f_new = open (f_new_name,"w",encoding = "utf-8")
for line in f:
if old_str in line:
line = line.replace(old_str,new_str)
f_new.write(line)
f.close()
f_new.close()
os.remove(f_name)
os.rename(f_new_name,f_name)
(2)在系统内存中修改
f_name = "C:/Users/Administrator/Desktop/123.txt"
f = open (f_name,"r+",encoding = "utf-8")
old_str = "wsc"
new_str = "gxd"
date = f.read()
date = date.replace(old_str,new_str)
print(date)
f.close()