• python===文件===第八天


    文件

      r  只读  :只能读不能改动

      f=open("  文件路径  ",  mode="  文件格式  ", encoding= "  编码格式  ")

            文件路径:   相对路径:   相对于你当前程序所在的文件夹

    当执行文件和现文件不在同一个文件中时:   ../  表示返回上一层文件夹

           先退出去,再一层层找进来       ../../表示退两层文件夹

                         ../../file/wuse  表示退两层文件,进入file1文件,再进入wuse文件

                 绝对路径  :     从磁盘根目录寻找

                       互联网上的绝对路径:   搜索东西时右键单击,获取地址

     文件--新建文件--"果园"-----文件内容:李子,提子,菠萝

      f=open( " 果园"  ,  mode="  r  "  ,   encoding="  utf-8  "  )

      s=f.read()======>当文件不存在时====>报错

      f.close()     

      print(s)=====>李子,提子,菠萝

       w 只写  :   只写,     只要  遇到  w  ,写入了啥,  最后就  只剩 啥

          只写过程中,   当文件存在时:    将原来内容覆盖只剩,写入的内容

                当文件不存在时:    会自己创建一个文件,将写入内容写入文件中

    e.g

      f=open(" 果园 " , mode="  w  ",  encoding="  utf-8  ")

      f.write("  大白梨   ")======>  结果是  "   大白梨    "      原来的内容没有了,只剩大白梨

      f.flush()    

      f.close()

      a  追加    :   将写入的内容直接追加到文件内容后边

     e.g

      f=open(" 果园 " , mode="  a  ",  encoding="  utf-8  ")

      f.write("  西瓜  ")====>李子,提子,菠萝西瓜     #   直接在内容后边追加写入的内容

      f.flush()

      f.close()

      rb  只读(字节)

       e.g 

      f=open(" 果园 " , mode="  rb  ",  encoding="  utf-8  ")

      bs=f.read()  #读出来是字节的形式

      print(bs)====>  b'xe4x5xh8,,,'

      print(bs.decode("utf-8"))=====>  解码后是    李子,提子,菠萝  #需要解码

      f.close

         wb     :  只写 ,只要看到  w  ,就覆盖

    e.g

      f=open(" 果园 " , mode="  wb  ")

      f.write("桃"   .  encode("utf-8"))    ===>    "  桃  "#  看似是字节,但是用pycharm打开文件,却是  编好的文字

      f.close

      r    ,w   ,a   ====>    处理的是文本

      rb  ,wb,  ab ===>     处理的是非文本,,,,,,,b  表示的是字节  bytes

      r+   读写模式      :   只能先读  后写   ;

              因为默认情况下,光标是从文件开头开始的,    因此,必须先读后写

     e.g 

      f=open(" 果园 " , mode="  r +  ",  encoding="  utf-8  ")

      s=f.read()          #  先读后写 

      f.write("  苹果  ")

      f.flush()

      f.close()

      print(s)====>    运行结果:   李子,提子,菠萝    

              文件中:  李子,提子,菠萝苹果

      若先写后读

      f=open(" 果园 " , mode="  r +  ",  encoding="  utf-8  ")

      f.write("  苹果  ")

      s=f.read()          #  先写后读              由于默认情况下,光标是在文件开头的

      f.flush()

      f.close()

      print(s)====>    运行结果:          提子,菠萝

              文件结果:   苹果,提子,菠萝         结果出现错误    

        w+  :写读  

    e.g 

      f=open("  果园  ",  mode="  w+  ",  encoding="  utf-8  ")

      f.write("  今天天气   ")

      s=f.read()

      print(s)=====>   啥都没有  #  因为  w  会将原来的内容清空所以打印出来  啥都没有

      f.flush()    文件中只有  "  今天天气   " 

      f.close()

      f.write("  今天天气   ")     

      f.seek(0)  #  将光标移至开头

      s=f.read    从光标开始读

      print(s)  ====>   今天天气

      f.flush()

      f.close

      r+例子拓展

      深坑;   先读后写   ,,,,,,,不能跟着光标走

          在  r+  模式中,         在没有任何操作前进行  写的东西,   都是在开头写入的

              若,  读了一些内容,再写  ,写入的东西都是在末尾

    e.g

      文件名-精品,  内容-浓缩就是精品,潘长江是精品

      f=open("精品", mode=" r+ ",encoding=" utf-8 ")

      s=f.read(3)    #读3个字符

      ss=f.write(''  哈哈  ")    #不管前边读了几个字符,后边再写入的内容,或者进行的操作,都是在末尾进行的

      print(ss)====>浓缩就是精品,潘长江是精品哈哈  

      f=open("精品", mode=" r+ ",encoding=" utf-8 ")

      f.seek(3)    #将光标移动到3的位置,3是一个字,即移动到一个字的位置.

      f.seek(0)    #将光标移动到开头的位置

      f.seek(0,1) # 光标在当前位置

      f.seek(0,2)  #  将光标移动到结尾的位置

        超人的都是精品,

      f=open("精品", mode=" r+ ",encoding=" utf-8 ")

       f.seek(6)    #将光标移到第2个字的位置

      s=f.read(3)   # 读3个字

      print(s) =====>   的都是

      f.seek(0)   #  再将光标移到开头的位置

      ss=f.read(3)   #  再读三个字

      print(ss)  ====>   超人的

    文件修改      

         import os   

        with  open("  果园  ",  mode="    ",  encoding=""  utf-8  ) as f1  ,

          open("果园_副本",  mode="    ",  encoding=""  utf-8) as f2 

        s=f1.read()   #将f1 全部都出来            ====>for line in f1:

        ss=s.replace("子","果")    #   将子换成果,然后给了ss   ===>  s=line.replace("子","果")

        f2.write(ss)  #  将f2 副本   中的覆盖了,     原来的f1 没有变,====>  f2.write(s)

        os.remove  #   将原来的文件  " 果园  "删除

        os.rename   #     将   将"  果园_副本  ",重新命名为  " 果园  "   ,文件果园里的内容就等于修改了

      with open (      )  as f     相当于    f=open(    )

                      f.fluse(   )

                      f.close(   )

    with open (      )  as f1   ,       #   斜杠     ,表示  换行

      open (      )  as f2  

    f=open("  果园  ",  mode="    ",  encoding=""  utf-8  )

    s=f.readline()    #  一行一行的打印

    print(s)=====>打印出来第一行

    循环        #将每行一行一行打印出来

    for  line  in  f:   #  将f的每行都交给 line

      print(line)

    f.close()

    f.readable()    # 判断文件是否可读

    f.writeable()   #  判断文件是否可写入

    l=f.readlines()

    print(l)=[   ,   ,   ]       #会一行行打出来

    赵本山范德彪淑芬刚子老头

    f=open("马大帅",mode=" r+ ",encoding="utf-8")

    f.seek(12)   #先将光标移到四的位置,

    f.truncate()     #不给参数,表示从文件截取到光标的当前位置  =====>   赵本山范

    f.truncate(15)   #给参数,表示从文件开头截取到这个参数位置=====>   赵本山范德

      

  • 相关阅读:
    -bash: fork: retry: Resource temporarily unavailable
    360随身wifi在win10中连不上网络
    centos6安装php5.4以上版本
    Appium自动化测试教程-自学网-monkey事件
    Appium自动化测试教程-自学网-monkey简介
    Appium自动化测试教程-自学网-Package与Activity
    Appium自动化测试教程-自学网-adb命令
    Appium自动化测试教程-自学网-安卓模拟器
    Appium自动化测试教程-自学网-SDK
    Appium自动化测试教程-自学网-app基础知识
  • 原文地址:https://www.cnblogs.com/lynysy/p/9296006.html
Copyright © 2020-2023  润新知