15 python基础--文件操作
发布日期:2021-05-14 12:22:26 浏览次数:18 分类:精选文章

本文共 4012 字,大约阅读时间需要 13 分钟。

15 文件的理解

文件是数据的抽象和集合,是存储在辅助存储器上的数据序列。从存储的角度来看,文件可以看作是计算机世界的容器,用于整理和管理不同的数据内容。

15.1 文件的展现形态

从外观上看,文件可以分为文本文件和二进制文件两种类型。虽然不同的文件类型在存储时有不同的表现形式,但本质上所有的文件都是以二进制形式存储的。这意味着即使是一些看起来是文本的文件,也是以二进制字节为基础的。例如,常见的图片文件(如.png、.avi)和音频文件都属于二进制文件类别,它们没有统一的编码方式。

15.2 文件的打开与关闭

在Python中,文件的状态可以分为两种:未打开(存储状态)和已打开(占用状态)。文件可以通过open函数打开,并指定读取或写入的模式。一旦文件操作完成,应该及时使用close方法关闭文件,以释放占用的资源。

常用文件操作方法

  • 读取文件

    • a.read(size):读取指定的字节数。
    • a.readline():读取单行文本,默认读取一行。
    • a.readlines(hint):读取全部内容或指定的行数。
  • 写入文件

    • a.write(s):将字符串写入文件。
    • a.writelines(lines):将一个字符串列表逐行写入文件。
  • 定位文件指针

    • a.seek(offset, from):调整文件内部的读取或写入位置。
  • 关闭文件

    • a.close():释放文件资源。
  • 示例代码

    # 示例:读取文件
    a = open('h.txt', 'rt').read(5)
    print(a)
    # 示例:逐行读取文件
    b = open('h.txt', 'rt').readline()
    print(b)
    # 示例:读取所有内容
    c = open('h.txt', 'rt').readlines()
    print(c)
    # 示例:书写操作
    f = open('h.txt', 'w')
    a = f.write('中国')
    f.close()
    # 示例:批量写入文件
    l = ['中国', '美国', '法国']
    f = open('h.txt', 'w')
    b = f.writelines(l)
    f.close()
    f = open('h.txt')
    d = f.read()
    print(d)
    f.close()
    # 示例:with语句的应用
    with open(r'C:\Users\Administrator\Desktop\h.txt', 'r') as f:
    # 定位到文件的第6个字节位置
    f.seek(6, 0)
    strChar = f.read()
    print(strChar)

    15.3 文件的打开模式

    文件打开时需要指定模式,常用的模式包括:

  • 只读模式('r'):默认模式,适用于文本文件。如果文件不存在,会抛出FileNotFoundError错误。

  • 覆盖写模式('w'):如果文件不存在则创建,存在则完全覆盖内容。

  • 创建写模式('x'):只有在文件不存在时创建,存在则抛出FileExistsError错误。

  • 追加写模式('a'):文件不存在则创建,存在则在末尾追加内容。

  • 二进制模式('b'):处理二进制文件,如图片、音频等。

  • 文本模式('t'):默认文本读写模式,处理文本文件。

  • 二进制模式与文本模式的区别

    二进制模式和文本模式的主要区别在于换行字符的处理方式。在文本模式下,换行符会被解释为\n,而在二进制模式下,换行符会被保留为原始字节。

    15.4 文本的遍历方法

    在阅读文件时,可以选择一次性读入全部内容,或者逐行或逐字节读取,具体选择取决于读取需求。

  • 一次性读入

    f = open('h.txt', 'rt')
    content = f.read()
    f.close()
  • 按量读入

    f = open(r'C:\Users\Administrator\Desktop\h.txt', 'rt')
    while True:
    chunk = f.read(2)
    if not chunk:
    break
    print(chunk)
    f.close()
  • 按行读取

    f = open('h.txt', 'rt')
    for line in f.readlines():
    print(line)
    f.close()
  • 逐行读取

    f = open('h.txt', 'rt')
    for line in f:
    print(line)
    f.close()
  • 15.5 with语句

    with语句是一种上下文管理协议(ContextManagementProtocol),其作用是保证资源的生命周期管理。在使用文件时,with语句能自动关闭文件句柄,避免资源泄漏。写文件的时候可以直接读取或修改文件内容,操作完成后with语句会自动关闭文件。

    示例

    with open(r'C:\Users\Administrator\Desktop\h.txt', 'r') as f:
    for i in f.readlines():
    print(i)
    多余的内容会被自动去除,请放心阅读
    《文件的理解》
    # 15.1 文件的理解
    文件是数据的抽象和集合,文件是存储在辅助存储器上的数据序列。
    # 15.2 文件的展现形态
    文件展现形态:文本文件和二进制文件。本质上所有的文件都是二进制存储。二进制文件没有统一的编码,如.png、.avi。
    ## 文本文件和二进制文件
    `f.txt`文件保存:"中国是个伟大的国家!"
    ## 文本形式
    ```python
    af = open('C:/Users/ZY/Desktop/f.txt','rt')
    print(af.readline())
    af.close()
    # 输出:中国是个伟大的国家!
    ## 二进制形式
    ```python
    bf = open('C:/Users/ZY/Desktop/f.txt','rb')
    print(bf.readline())
    bf.close()
    # 输出:b'\xd6\xd0\xb8\xfa\xca\xc7\xb8\xf6\xce\xb0\xb4\xf3\xb5\xc4\xb8\xfa\xbc\xd2!'

    15.3 文件的打开与关闭

    文件存在两种状态:存储和占用。文件打开时需要注意以下几点:

    文件打开方式

    ## 打开文件
    open('filename','模式')
    ## 读取文件
    a.read(size) ## 读取指定的字节数
    a.readline(size) ## 读取字符串,默认读取一行
    a.readlines(hint) ## 读取全部内容或指定行数
    ## 写文件
    a.write(s) ## 写入一个字符串
    a.writelines(lines) ## 将一个元素全为字符串的列表写入文件
    a.seek(offset, from) ## 设置读写指针位置
    ## 关闭文件
    a.close

    示例

    a = open('C:/Users/ZY/Desktop/h.txt','rt').read(5)
    print(a)
    b = open('C:/Users/ZY/Desktop/h.txt','rt').readline()
    print(b)
    c = open('C:/Users/ZY/Desktop/h.txt','rt').readlines()
    print(c)
    f = open('C:/Users/ZY/Desktop/h.txt','w')
    a = f.write('中国')
    f.close()
    f = open('C:/Users/ZY/Desktop/h.txt')
    c = f.read()
    print(c)
    f.close()
    l = ['中国','美国','法国']
    f = open('C:/Users/ZY/Desktop/h.txt','w')
    b = f.writelines(l)
    f.close()
    f = open('C:/Users/ZY/Desktop/h.txt')
    d = f.read()
    print(d)
    with open(r'C:\Users\Administrator\Desktop\h.txt', 'r') as f:
    f.seek(6, 0)
    strChar = f.read()
    print(strChar)
    with open(r'C:\Users\Administrator\Desktop\h.txt', 'r') as f:
    pos = f.tell()
    strChar = f.read(3)
    while strChar:
    print(pos)
    print(strChar)
    strChar = f.read(3)
    pos = f.tell()

    15.4 文件的打开模式

    文件的打开模式决定了文件的读写方式及其行为。常见的文件打开模式包括:

  • 只读模式('r'):默认模式,打开为只读文件。
  • 覆盖写模式('w'):打开并写入文件,若文件存在则覆盖。
  • 创建写模式('x'):如文件不存在则创建,否则异常。
  • 追加写模式('a'):写入文件末尾,文件不存在则创建。
  • 二进制模式('b'):打开为二进制文件处理。
  • 文本模式('t'):默认文本文件模式。
  • 混合模式('+'):兼读写模式。
  • 每种模式都有其特定的适用场景,选择时需根据具体需求决定。

    adb ethics
    上一篇:09.9 python基础--openpyxl库
    下一篇:14 python基础--复用和递归

    发表评论

    最新留言

    关注你微信了!
    [***.104.42.241]2025年04月07日 04时23分24秒