• 第六篇、文件处理之文件的高级应用


    第六篇、文件处理之文件的高级应用

    一、可读可写

    • r+:在后面追加

    • w+:清空文件的功能是w提供的 更加慎用

    • a+:a有追加的功能,指针在文件的末尾,没啥用

    二、文件内指针移动

    需要对文件内的指针移动的操作才能对文件的内容进行修改

    硬盘上没有修改的说法,硬盘只能覆盖,新内容覆盖旧内容

    with open('36r.txt', 'r+t', encoding='utf-8') as fr:
        fr.readline()
        fr.write('nick 真衰呀')  # 写在文件的最后一行
    

    三、文件的内置方法

    • seek()

    • tell()

    • read(n)

    • truncate(n)

    1. seek()移动指针方法

      seek(offset,whence): offset代表文件指针的偏移量,偏移量的单位是字节个数,whence可以写0,1,2;0相当于文件头开始;1相当于当前文件所在位置;2相当于文件末尾

      # seek()
      with open('36r.txt', 'rb') as fr:
          print(f"fr.seek(4, 0): {fr.seek(4, 0)}")  # 0相当于文件头开始;1相当于当前文件所在位置;2相当于文件末尾
          # fr.seek(0,2)  # 切换到文件末尾
      
    2. tell()统计从头到当前位置的字符的方法

    # tell()
    with open('36r.txt', 'rb') as fr:
        fr.seek(4, 0)
        print(f"fr.tell(): {fr.tell()}")
    
    1. read(n)读取从文件到指针当前的所有内容

    在b模式,读取到n个字节的内容,不用加encoding参数

    在t模式,读取到n个字符的内容

    # read()
    with open('36r.txt', 'rt', encoding='utf-8') as fr:
        print(f"fr.read(3): {fr.read(3)}")
    
    1. truncate(n)在t模式(b模式)清空文件的第n个字符(字节)后面的内容**打开文件方式必须可写,不能用w和w+等方法,因为这些方法会清空文件,这个truncate方法要在r+或者a或者a+等模式下用,永远都是从文件内容的开头数起。如果不加参数,就会清空文件

    课后练习的测试总结经验

    1. python 报错:ValueError: binary mode doesn't take an encoding argument

    ​ 在运行文件操作相关功能时报错:ValueError: binary mode doesn't take an encoding argument

    上代码:

    >>> fp = open("a.txt","rb+",encoding="utf-8")#rb+操作时不支持指定encoding参数
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: binary mode doesn't take an encoding argument
    

    原因分析:rb+操作时不支持指定encoding参数

    解决:

    改成如下方法即可

    >>> fp = open("a.txt","rb+")#注意:a.txt文件编码格式需为“ANSI”
    >>> fp.close()
    
  • 相关阅读:
    codesmith 模板
    asp.net 开发知识小结【转】
    一种页面数据错误输入提示方法 【转】
    vs2008 调试js
    安装vs2008出现的问题
    Godaddy主机导入MSSQL数据库教程
    asp.net用url重写URLReWriter实现任意二级域名(续)
    Visio2007 与Microsoft Studio 2008不兼容
    dos 必知八项命令
    Godaddy空间设置说明
  • 原文地址:https://www.cnblogs.com/demiao/p/11322223.html
Copyright © 2020-2023  润新知