python(四)文件的读写追加模式

1.文件的读模式:也是默认的方式,

f=open(‘文件路径文件名’,'r',encoding='utf-8'):以读的模式打开一个文件,这里的'r'也可以不写,读模式是默认模式,encoding='utf-8'是防止中文乱码。打开文件,然后有一系列的操作,但是打开的语句太长,所以赋值给一个变量,这样方便之后的操作。

 R模式:只能读,读不存在的文件会报错,执行写的方法会报错。

2. W模式:只能写,不能读,读文件会报错。写一个不存在的文件,会新建一个文件,然后写。写一个已经存在的文件,会先清空文件内容再写

3. a 模式:追加模式,只能写不能读。写一个已经存在的文件,会在文件的后面写内容。追加一个不存在的文件,会创建一个文件,然后写。

4. R+模式:可以写,也可以读,但写的话是在开头写,要把其他的字符踢掉,给写的字符腾位子。打开不存在的文件会报错

5. W+模式:可以写,也可以读。因为‘W’会先把文件里面的内容清空掉,再去读,读到的内容就是空

6.a+ 模式:文件指针默认在末尾。

7. 可以使用a+和seek(0)方法,是文件指针放在文件的开头

8.read():读完文件的所有内容

9.readline():按行读,读一行

10. readlines():读完整个文件,写在list里面,每一行就是一个元素

f = open('a.txt','r',encoding='utf-8')#打开模式r w a
result1 = f.readline()#读文件,一次只读一行
print(result1)
result = f.read()#读文件,获取文件里的全部内容
result2 = f.readlines()#读文件,把文件里的内容放到一个list里,每一行是一个元素
#f.read(),f.readlines()这两个方法当文件很大时,会占用很大的内存
print(result2)
#处理大文件的时候,循环读取
for line in f:
    print(line)
f.close()#关闭文件

11. write(‘’s‘’):把字符串写在文件里,只能写字符串

12. writelines():可以把一个列表中数据写进文件里

f1 = open('a1.txt','w',encoding='utf-8')
f1.write('12')#这个是一次写一行
#print(f.read())
l = ['fdslfjs
','fdsrewr
','fdsfsdfrere
']
f1.writelines(l)#将列表写到文件中
#循环写入,和writelines()的功能一样
#for i in l:
  #  f1.write(i)
f1.close()

13.删除文件内容

with open('数据.txt','r+',encoding='utf-8') as f:
     f.truncate()  # 清空文件内容
     f.flush()  # 不管缓冲区有没有满,立即更新到磁盘

14.修改文件有两种方法:

# 1、简单粗暴直接的
#     1、读取文件所有内容
#     2、replace
#     3、清空文件
#     4、把新的内容写进去
#     修改小文件的话可以用这种方式
with open('数据.txt','r+',encoding='utf-8') as f:
    content = f.read()
    new_content = content.replace('100','1000000000000')
    f.seek(0)
    f.truncate()
    f.write(new_content)
    f.flush()#立即刷新缓冲区的内容,写到磁盘上
#2、两个文件操作
    #1、r模式打开a文件,w模式打开b文件
    #2、逐行读取a文件的内容,读完之后替换内容
    #3、把替换完的内容写到b文件里面
    #4、把a文件删掉,把b文件的名字改成a文件
import os
with open('数据.txt',encoding='utf-8') as f1, open('数据2.txt','w',encoding='utf-8') as f2:
    for line in f1:
        new_line = line.replace('4','444444')
        f2.write(new_line)

os.remove('数据.txt')
os.rename('数据2.txt','数据.txt')
原文地址:https://www.cnblogs.com/dmjsd/p/10952450.html