操作步骤
第1步: 打开需要操作的文件
第2步: 对文件读或写操作
第3步: 关闭文件
第一种语法:
f =open("文件路径/文件名" ,"读写模式")
读 或 写
f.close()
第二种语法:
with open("文件路径/文件名" ,"读写模式") as f:
读 或 写
#自动关闭文件
1、打开文件
f =open( file="" , mode=type, encoding=编码 )
f1 =open(file=r"c:\古诗.txt",mode="r",encoding="utf-8")
f1 =open(r"c:\古诗.txt","r",encoding="utf-8")
(1)读文件
- read() 将文件的所有内容读取出来,返回一个字符串
- readline() 读取文件中的一行内容, 返回一个字符串
- readlines(),将文件的所有内容读取出来,返回一个列表,文件中的每行为列表中的一个元素
变量=f.read()
变量=f.readline()
列表变量=f.readlines()
def fun_read1():
f2 =open('咏柳.txt','r',encoding="utf-8")
content =f2.read()
f2.close( )
print(content)
def fun_read2():
f2 =open('咏柳.txt','r',encoding="utf-8")
content =f2.readlines() #读取全部内容返回列表,文件中每一行对应列表中的一个元素
f2.close( )
print(content)
(2)写文件
-
write(s) 将一个字符串写入文件
-
writelines( squ ) 将一个序列对象的所有元素依次写入文
f.write(字符串)
f.writelines( 列表名 ) [ ]
def fun_write1():
f1 =open('古诗.txt','w',encoding="utf-8")
f1.write('春眠不觉晓,\n')
f1.write('处处闻啼鸟。\n')
f1.write('夜来风雨声,\n')
f1.write('花落知多少。\n')
#f.write(1314) 报错:写入的数据必须是字符串
f1.close( )
print("内容已写入文件")
def fun_write2():
f1 =open('awp.txt','w',encoding="utf-8")
f1.writelines(list_word)#将列表的每个元素依次写入文件
f1.close( )
print("内容已写入文件")
# write() 只能写字符串类型的数据
# writelines(列表) 列表中的元素也必须是字符串类型
# 写数据后不会换行,如需换行需在字符串尾部加入\n符
(3) 追写文件
w模式覆盖写入, 打开文件先清空内容,然后执行写入操作。 (文件不存在创建文件 )
a模块追加写入,打开文件在文件尾执行写入操作。(文件不存在创建文件 )
def fun_write3():
f=open('古诗.txt','a',encoding="utf-8")
f.write('好雨知时节\n')
f.write('当春乃发生\n')
f.write('随风潜入夜\n')
f.write('润物细无声\n')
f.close()
语法: f.seek(移动多个少字节,参考位置)
参考位置:
0 文件的开头作为基准位置 /1 当前位置作为基准位置 /2文件的结束将作为基准位置
-移动指针到文件尾 f.seek(0,2)
-移动指针到文件头 f.seek(0,0)
#一个字符一个字节 一个汉字3个字节
# r 读模式 文件不存在 报错 FileNotFoundError
# w 覆盖写模式 文件不存在 创建再写, 文件存在覆盖(清空文件中所有内容)再写
# a 追写模式 文件不存在 创建再写, 文件存在,在文件尾写
# 读写模式 r+ 打开文件 默认指针在文件头
#读写模式 w+ w模式 打开文件先清空 指针在文件头
#读写模式 a+ a模式 默认指针在文件尾
示例1
# 1:将自己喜欢诗句写入文件中 # 2:读取这个文件的内容 def demo1(): d1=open(r'C:\Users\aoxiang.liu\Desktop\江城子.txt','w',encoding='utf-8') d1.write('十年生死两茫茫,不思量,自难忘。千里孤坟,无处话凄凉。纵使相逢应不识,尘满面,鬓如霜。\n' '夜来幽梦忽还乡,小轩窗,正梳妆。相顾无言,唯有泪千行。料得年年肠断处,明月夜,短松岗。') d1.close() print('写入完毕') def demo2(): d2=open(r'C:\Users\aoxiang.liu\Desktop\江城子.txt','r',encoding='utf-8') s2=d2.read() d2.close() print(s2) if __name__ == '__main__': demo1() demo2()
示例2
# 1: 将列表[["姓哈哈","5元"],["优酸乳","4元"]]中的商品写入goods.txt文件中每个商品写一行如: # 商品名称,商品价格 # 姓哈哈 ,5元 # 优酸乳,4元 # 2: 读取这个文件的内容 goods=[["姓哈哈","5元"],["优酸乳","4元"]] def demo6(): d6=open(r'C:\Users\aoxiang.liu\Desktop\goods.txt','w',encoding='utf-8') d6.write('商品名称\t\t商品价格\n') for i in range(len(goods)): d6.write(f'{goods[i][0]}\t\t{goods[i][1]}\n') d6.close() print('写入完毕') def demo7(): d7 = open(r'C:\Users\aoxiang.liu\Desktop\goods.txt','r',encoding='utf-8') s7 = d7.read() d7.close() print(s7) if __name__ == '__main__': demo6() demo7()
示例3
# 1: 将字典中属于电摄班的同学按男女区分,分别放到boys.txt、girls.txt 文件中,每个名字在文件中独占一行 # cl={"电摄班": {"路桥川": "M", "林洛雪": "F", "钟白": "F", "肖海洋": "M"}, "其他班": {"任逸帆": "M"}} #2: 读 boys.txt、girls.txt 文件 cl={"电摄班": {"路桥川": "M", "林洛雪": "F", "钟白": "F", "肖海洋": "M"}, "其他班": {"任逸帆": "M"}} st=cl.get("电摄班") def demo8(): d8 = open(r'C:\Users\aoxiang.liu\Desktop\boys.txt', 'w', encoding='utf-8') d8.write('名字\t\t性别\n') d9 = open(r'C:\Users\aoxiang.liu\Desktop\girls.txt', 'w', encoding='utf-8') d9.write('名字\t\t性别\n') for key in st: if st[key]=='M': d8.write(f'{key}\t\t{st[key]}\n') elif st[key]=='F': d9.write(f'{key}\t\t{st[key]}\n') d8.close() d9.close() print('写入完毕') def demo10(): d10 = open(r'C:\Users\aoxiang.liu\Desktop\boys.txt','r',encoding='utf-8') s10 = d10.read() d10.close() print(s10) def demo11(): d11 = open(r'C:\Users\aoxiang.liu\Desktop\girls.txt','r',encoding='utf-8') s11 = d11.read() d11.close() print(s11) if __name__ == '__main__': demo8() demo10() demo11()