白骑士的Python教学进阶篇 2.3 文件操作

41 篇文章 0 订阅

系列目录

上一篇:白骑士的Python教学进阶篇 2.2 异常处理

        在Python编程中,文件操作是一个非常重要的主题。无论是读取数据、写入数据,还是进行文件的定位与管理,都需要掌握相关的技能。本篇博客将详细介绍文件的读写、文件的定位与操作、以及上下文管理器的使用。通过这些内容,你将学会如何在Python中高效地进行文件操作。

文件的读写

        文件读写是文件操作的基础。在Python中,文件操作通常分为三步:打开文件、读写文件、关闭文件。Python提供了内置的 ‘open’ 函数用于打开文件,并返回一个文件对象,通过该对象可以进行读写操作。

打开文件

        使用 ‘open’ 函数可以打开文件。‘open’ 函数的基本语法如下:

file_object = open('file_name', 'mode')

        ‘file_name‘:要打开的文件名或路径。

        ’mode`:文件打开模式,常见的模式有:

        ‘ 'r' ’:以只读模式打开文件(默认模式)。

        ‘ 'w' ’:以写入模式打开文件,若文件不存在则创建,若文件存在则清空文件内容。

        ’ 'a' ‘:以追加模式打开文件,若文件不存在则创建,若文件存在则在文件末尾追加内容。

        ‘ 'b' ’:以二进制模式打开文件,可以与其他模式结合使用,如‘ 'rb' ’、‘ 'wb' ’等。

        ’ '+' ‘:以读写模式打开文件,可以与其他模式结合使用,如‘ 'r+' ’、‘ 'w+' ‘等。

读取文件

        Python提供了多种方式读取文件内容,常用的方法有:

        ‘read()’:一次性读取文件的全部内容,适用于小文件。

        ‘readline()’:每次读取一行内容,适用于逐行处理文件。

        ‘readlines()’:一次性读取文件的所有行,并返回一个列表,每行作为列表的一个元素。

        例如:

# 读取整个文件内容
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

# 逐行读取文件内容
with open('example.txt', 'r') as file:
    for line in file:
        print(line.strip())

# 使用readlines()读取文件内容
with open('example.txt', 'r') as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())

写入文件

        Python同样提供了多种方式写入文件内容,常用的方法有:

        ‘write()’:将字符串写入文件。

        ‘writelines()’:将字符串列表写入文件。

        例如:

# 写入字符串到文件
with open('example.txt', 'w') as file:
    file.write('Hello, World!\n')

# 写入字符串列表到文件
lines = ['Line 1\n', 'Line 2\n', 'Line 3\n']
with open('example.txt', 'w') as file:
    file.writelines(lines)

文件的定位与操作

        在进行文件读写时,可能需要对文件进行定位和操作。文件对象提供了一些方法用于文件定位和操作。

文件指针

        文件指针指向文件中当前读写的位置。文件对象的读写操作都是从文件指针当前位置开始的。

定位文件指针

        ‘tell()‘:返回文件指针的当前位置(字节数)。

        ’seek(offset, whence)’:移动文件指针到指定位置。

         ‘offset‘:偏移量。

         ‘whence’:参考位置,可取值:

         ’0‘(默认):从文件开头计算偏移。

         ‘1’:从文件当前位置计算偏移。

         ’2‘:从文件末尾计算偏移。

        例如:

# 定位文件指针
with open('example.txt', 'r') as file:
    content = file.read(5)
    print(content)  # 读取前5个字符
    print(file.tell())  # 输出当前文件指针位置

    file.seek(0)  # 移动文件指针到开头
    content = file.read(5)
    print(content)  # 再次读取前5个字符

截断文件

        ‘truncate(size)’:截断文件到指定大小(字节数)。

        例如:

# 截断文件
with open('example.txt', 'w') as file:
    file.write('Hello, World!\nThis is a test file.')
    file.truncate(13)  # 截断文件到13个字节

上下文管理器

        在进行文件操作时,使用上下文管理器(Context Manager)是一个非常好的实践。上下文管理器可以确保在文件操作完成后自动关闭文件,避免忘记关闭文件导致资源泄露。

使用 ’with‘ 语句

        ‘with’ 语句是上下文管理器的常用方式。使用 ‘with’ 语句打开文件,能够自动管理文件的打开和关闭。语法如下:

with open('file_name', 'mode') as file_object:
    # 文件操作

        例如:

# 使用with语句读取文件
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

# 使用with语句写入文件
with open('example.txt', 'w') as file:
    file.write('Hello, World!\n')

自定义上下文管理器

        除了文件操作,Python还允许开发者自定义上下文管理器,以便在进入和退出上下文时执行特定操作。自定义上下文管理器可以通过实现 ‘__enter__’ 和 ‘__exit__’ 方法的类来实现,或者使用 ‘contextlib’ 模块的 ‘contextmanager’ 装饰器。

        例如:

from contextlib import contextmanager

@contextmanager
def custom_context():
    print('Entering context')
    yield
    print('Exiting context')

# 使用自定义上下文管理器
with custom_context():
    print('Inside context')

总结

        文件操作是Python编程中的一个基础而重要的部分。通过学习文件的读写、文件的定位与操作以及上下文管理器的使用,可以在Python中高效地处理各种文件操作需求。无论是读取数据文件、写入日志文件,还是进行文件的复杂管理,这些技能都是必不可少的。希望本篇内容能够帮助更好地掌握Python的文件操作,为编程之路打下坚实的基础。

下一篇:白骑士的Python教学进阶篇 2.4 高级数据结构​​​​​​​

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白骑士所长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值