python-文件读写

1. r 只读模式,读取不存在的文件时会报错;只读模式不能写入;

2. w 写模式,不能读;如果打开的文件不存在时,会新建一个文件;如果打开的文件里有内容,重新写入内容时会清空原有的内容

3. a 追加模式,不能读,如果打开的文件不存在时,会新建一个文件写入内容;如果打开的文件里有内容时,重新写入时不会清空原有的内容

4. r+ 读写模式,读写功能正常,只是打开不存在的文件时会报错

5. w+写读模式,读写功能正常,只是打开文件会清空文件内容,所以读取不到内容

6. a+ 追加读模式,因为a+模式是从末尾开始追加的,所以读取时会读不到内容;如果想要读取内容需要把文件指针定位在文件开始

7. f.seek()文件指针,a+模式使用,只对读起作用;如果想要移动指针文件到最前面使用f.seek(0)

8. f.flush()刷新缓冲区,立即写入内容到磁盘

9. f.resdline()读取一行内容

10. f.readlines()读取文件里所有内容,并把每行的内容都放在一个list里

11. 注意:如果文件中有中文,需要添加encoding = utf-8

12. f.truncate()#清空文件内容

13. 打开文件的两种方式

 13.1
f = open("stu.txt",encoding="utf-8")
print(f.readlines())
f.close()
 文件使用完之后需要有close关闭文件
13.2
 with open("user.txt","a+") as f:
用户完之后会自动关闭文件
14. 修改文件的两种方式
#第一种
with open("user.txt","a+") as f: #用完之后自动关闭
f.seek(0)#a+默认在文件末尾要先定位;r+不需要
res = f.read() #读取文件内容
new_res = res.replace("aaa","bbb") #aaa替换前内容,bbb替换后内容
f.seek(0)
f.truncate()#清空文件原来内容
f.write(new_res)#把替换的内容写入文件
#第二种
import os
with open("user",encoding="utf-8") as fr,open(".users","w+",encoding="utf-8")as fw: #打开两个文件,user是原文件,.users是备份文件
for line in fr:#循环读取原文件里的内容
new_line=line.replace("java","修改文件")#需要替换的内容
fw.write(new_line)#写入备份文件

os.remove("user") #移除原来的文件
os.rename(".users","user") #给备份文件重命名

15.
 

原文地址:https://www.cnblogs.com/xxy0703/p/10021466.html