欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

攻克python3-文件操作

程序员文章站 2022-04-24 20:26:04
1.文件的打开方式 w:文件以只写的方式打开,并且清空文件,如果没有改文件直接创建。 r:文件也只读方式打开,不可写。 w+:文件以写读模式打开,并且清空文件,可写可读 r+:文件以读写模式打开,可读可写,是追加写模式 a:文件以只写模式打开,不可读,是追加写模式 a+:文件以读写模式打开,可读可写 ......

1.文件的打开方式

  w:文件以只写的方式打开,并且清空文件,如果没有改文件直接创建。

  r:文件也只读方式打开,不可写。

  w+:文件以写读模式打开,并且清空文件,可写可读

  r+:文件以读写模式打开,可读可写,是追加写模式

  a:文件以只写模式打开,不可读,是追加写模式

  a+:文件以读写模式打开,可读可写,是追加写模式

  wb,rb,wb+,rb+,ab,ab+读写模式均以不加b一样,只是文件的格式为二进制

2.文件的写入

#f=open('data','w',encoding="utf-8")#文件句柄             #覆盖写
#f.write("我爱北京*\n")

#f=open('data','a',encoding='utf-8')             #追加写
#f.write('*前太阳升')
#f.writelines(list)                              #写入一个列表

#f=open('data','wb')                              #以二进制格式覆盖写
#f.write("我爱北京*\n".encode())

#f=open('data','ab')
#f.write('*前太阳升\n'.encode())               #以二进制格式追加写

#print(f.writable())                                #判断该文件是否可写

3.文件的读取

#f=open('data','r',encoding='utf-8')
#print(f.read())                 #全部读出
#print(f.readlines())            #全部读出以列表形式保存,每一行为一个元素
#print(f.readline())              #以行为单位读出,以字符串的格式保存
#print(f.readable())              #判断该文件是否可读
#二进制读取
#f=open('data','rb+')
#f.write("我爱北京*\n".encode())
#print(f.readline())

4.文件的指针操作

f=open("data2","r+",encoding='utf-8')               #文件的读写模式

f.write("-------da---------\n")
f.write("-------da---------\n")
f.write("-------da---------\n")
f.write("-------da---------\n")
f.write("-------da---------\n")
print(f.read())
print(f.tell())                      #判断当前文件指针的位置
f.seek(10)                         #移动文件指针的位置
print(f.tell())
print(f.read())
#任务现在我要从第10个字节开始修改内容

print(f.tell())
f.seek(20)
print(f.tell())
f.write("我修改的内容\n")
f.seek(0)
print(f.read())
print(f.tell())

攻克python3-文件操作

5.文件内容的修改

修改文件内容我们不通过移动文件指针的方式进行修改,因为通过文件指针修改,会把我们不需要修好的内容覆盖掉

通过创建一个新文件,利用两个文件,一遍读一遍写的方式,修改内容

with open("data",'r',encoding='utf-8') as f,\
     open('data2','w',encoding='utf-8') as f2:
    find_str="夜晚的微风"
    replace_str='我爱你'
    for line in f:
        if find_str in line:
            line=line.replace(find_str,replace_str)
        f2.write(line)

攻克python3-文件操作攻克python3-文件操作

 

 6.文件的其他操作

f=open("data2",'a',encoding='utf-8')
f.write("chose1\n")
f.flush()                   #强制刷新进入硬盘,不需要在缓存等待

f.truncate(10)              #清除,只保留前10个字节数据,其他清除

文件写入的过程,不是输入一个数据就写入一个数据,而是将这些输入的数据存入缓存中,当这些数据的大小达到某个值是,在一起写入硬盘,flush的作用是不要你在缓存区等待,只有你输入就立刻写进硬盘