文件及文件操作

1,文件:操作系统提供给用户/应用程序操作硬盘的接口

  

 

 

 控制文件读写操作模式:t模式(txt),b模式(bytes),但是t,b模式不能单独使用,必须跟r,w,a结合使用

  t模式(txt):

  1. 读,写都是以字符串为单位
  2. 文本文件
  3. 必须指定encoding = "编码格式"  

  当文件打开读完后关闭就不能再读,否则会报错

没有指定encoding操作系统默认编码:

  max,Linux系统默认:utf-8

  Windows系统默认:gbk

 

2,

r模式:只读

    • 当文件不存在时,读取文件则报错
    • 当文件存在时指针跳到开始位置

read :一次性读取所有数据(但不适合读文件大的数据)

  • with open("r.txt","r",encoding= "utf-8") as flie:
        res = flie.read()
        print(res)
    
        res1 = flie.read()#当第二次读取时是空的
        print(res1)
    
        #运行结果
        hhgfghfsgjf 
                         

     

          

w模式 :只写

    • 当文件不存在时,则创建文件
    • 当文件存在时,则清空文件内容,指针跳到开始位置

  强调:

  1. 在w模式中打开文件没有关闭的情况下,连续写入新的数据总跟在原来的数据后增加
  2. 如果以w模式打开文件则内容会被清空  
  • with open("r.txt","w",encoding= "utf-8") as flie:
        print(flie.write("啦啦\n"))
        print(flie.write("丽丽\n"))
    
        #运行结果
        啦啦
        丽丽

     

 

w模式 :只追加

    • 当文件不存在时,则创建文件
    • 当文件存在时,指针跳会直接调到末尾

a模式与w模式的区别:

  • 相同:都可以追加内容
  • 不同:
    • a模式重新打开不会清空内容,指针会停在内容末尾
    • w模式重新打开则会清空内容,指针会停在开始位置

 

文件copy 

with open("r.txt","rt",encoding= "utf-8") as flie1 ,\
    open("f.txt","wt",encoding="utf-8") as flie2 :
    res = flie1.read()
    flie2.write(res)

 

+ : + 不能单独使用,必须结合r,w,a使用

  如果源文件中有内容则会会被覆盖 

with open("f.txt","rt+",encoding= "utf-8") as flie1:
    flie1.write("认真完成作业")#可读可写


with open("f.txt","wt+",encoding= "utf-8") as flie1:
    flie1.write("认真完成作业")#可读可写,重新打开则数据清空


with open("f.txt","at+",encoding="utf-8") as flie1:
    flie1.write("认真完成作业")#可读可写可追加,在旧数据后添加新数据

 

posted @ 2020-03-13 17:42  zhw_sylvia  阅读(153)  评论(0编辑  收藏  举报