文件有利于数据的长久保存,因此文件操作是一个比较重要的操作。
文件打开有三种方式:读模式(默认)‘r’,写模式'w',追加模式‘a’。
再加三种双重操作模式:读写模式‘r+’,写读模式‘w+’,追加读写模式‘a+’。
==========================================================
具体说下这6种模式的不同:
读模式 r :以只读方式打开文件。文件指针将会放在文件的开头。这是默认模式。(文件不能写入,文件不存在的时候,会报错)
写模式 w:打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。(文件不能读)
追加模式 a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。(文件不能读)
读写模式 r+:打开一个文件用于读写。文件指针将会放在文件的开头。
写读模式 w+:打开一个文件用于读写。如果该文件已存在,将其覆盖(即会清空文件之前的内容)。如果该文件不存在,将创建新文件。
追加读写模式 a+ :打开一个文件用于读写。如果该文件已经存在,文件指针放在文件的末尾,文件打开会是追加模式。如果该文件不存在,创建新文件用于读写。
======================================
f=open(''words.txt,'r',encoding='utf-8') #读模式打开文件,其他目录的时候,要写绝对路径
f.read() #读文件
f.readline() #读取每一行内容
f.readlines() #是把文件的每一行放到一个list里面
======================================
f=open('words.txt','w',encoding='utf-8') #写模式
f.write('aaaaaaaaaaaa') #写入
======================================
修改文件两种方式:
第一种,简单粗暴直接
1.打开一个文件,获取到它的所有内容
2.对内容进行修改
3.清空原来文件的内容
4.把新的内容写进
例如:把文件‘username’中的‘12345’修改为‘67890’
f = open('username','a+') #打开文件
f.seek(0) #文件指针移到最前面
all_str =f.read() #读取文件全部内容
new_str= all_str.replace('12345','67890') #字符串替换
f.seek(0) #读取内容后,文件指针移到最前面
f.truncate() #清空文件内容
f.write(new_str) #写入新内容
f.close() #关闭文件
第二种:适合文件内容比较多的情况
1.打开两个文件
2.打开A文件,写一行到B文件
3.修改内容
4.删掉A文件,B文件改名为A文件
import os #导入os模块
with open('words.txt',encoding='utf-8')as fr,open('.words.bak','w',encoding='utf-8')as fw: #A文件读模式打开,B文件写模式打开
for line in fr: #循环A文件内容
new_line=line.replace(‘花’,'flower') #修改内容
fw.write(new_line) #把内容写入B文件
os.remove('words.txt') #删掉A文件
os.rename('.words.bak','words.txt') #B文件进行改名
注意:fw.write() #只能写字符串内容