zoukankan      html  css  js  c++  java
  • Python文件操作

    1.说起python文件操作,一定要先说python中操作文件的函数open()并根据两种打开方式说一下关于open()函数中参数encoding

    with open('la.txt','r',encoding='utf-8') as f:

      pass

    with open('la.txt','rb') as f:

      pass

    首先,根据“r”模式打开时,可以增加编码(encoding)参数,不增加默认encoding=‘utf-8’,而以“rb”模式打开时不需要编码(encoding)参数,这是为什么呢,大家想一下文件在硬盘上是以字节的方式存储也就是二进制,而以“r”模式打开时,需要读取字符串,而从硬盘上拿到的是字节,所以python需要把字节转为字符串,这个过程中就需要编码,你需要字节以什么编码转化成字符串,而这个过程在以这种模式打开时python默认做了。而以“rb”模式打开时,需要读取的是字节,而从硬盘拿到的本身就是字节,所以不需要编码。

    好了,下面说一下r+ w+ a+ 三种打开模式:

    • r+模式打开文件时:

    1.打开文件时,文件指针在开始处即0的位置,f.tell() = 0

    2.如果read(1)时,read中指定具体的参数,这里1表示读取一个字符,读完之后,指针跳到指定的位置,如果继续读,则从该位置继续向后读

    3.如果在读取过程中有write()时,这里只要一写,指针都会跳到最后,追加的方式写

    • w+模式打开文件:

    1.w+表示写读

    2.以w+模式打开文件时,先把文件内容清空,文件指针为0位置

    3.write()之后,文件指针跳到最后

    4.如果要读取内容需要调整指针位置f.seek = 0

    • a+模式打开文件

    1.a+表示写读

    2.以w+模式打开文件后,文件指针跳到最后

    3.write()时,内容追加

    4.如果要读取内容需要调整指针位置f.seek = 0

    最后,对于f.seek,f.tell 值都是字节

    注:不能把open语句放到try块里面,因为打开文件出现异常时,文件对象无法close()

  • 相关阅读:
    一个没调好的程序
    bzoj1214 [HNOI2004]FTP服务器
    bzoj4514 [Sdoi2016]数字配对(网络流)
    二分图最大权匹配模板(pascal)
    CSS控制文字,超出部分显示省略号
    新型智慧城市顶层设计经验分享
    移动端浏览器前端优化
    桌面浏览器前端优化
    关于ie8下disabled属性:字体颜色问题
    win10永久激活
  • 原文地址:https://www.cnblogs.com/liyqiang/p/6182857.html
Copyright © 2011-2022 走看看