欢迎访问宙启技术站
智能推送

使用Python的select函数进行文件IO操作。

发布时间:2023-12-24 04:13:22

Python的select函数可以用来进行文件IO操作的多路复用。它可以同时监测多个文件对象的IO状态,并在有IO事件发生时进行相应的处理。

下面是一个使用select函数进行文件IO操作的示例:

import select

# 创建文件对象
file1 = open('file1.txt', 'r')
file2 = open('file2.txt', 'r')

# 创建读取列表
read_list = [file1, file2]

while True:
    # 使用select函数监测IO事件
    ready_to_read, _, _ = select.select(read_list, [], [])
    
    # 循环处理所有就绪的文件对象
    for file in ready_to_read:
        # 读取文件内容
        data = file.read()
        
        # 打印文件内容
        print(data)
        
        # 关闭文件
        file.close()

在上面的示例中,我们首先创建了两个文件对象file1file2,并将它们添加到读取列表read_list中。然后通过一个无限循环来不断监测IO事件。

在每次循环中,我们使用select函数来监测read_list中的文件对象是否有IO事件发生。select函数返回三个列表,分别是就绪的可读文件对象列表、就绪的可写文件对象列表和出错的文件对象列表。在这个示例中,我们只关注就绪的可读文件对象,因此用一个下划线_来接收其它两个返回值。

通过遍历就绪的文件对象列表,我们可以获取到每个文件对象,并读取文件内容。读取完成后,我们打印文件内容,并关闭文件。然后循环继续,再次使用select函数监测IO事件。

这样,我们就可以通过select函数同时监测多个文件对象的IO状态,实现高效的文件IO操作。