MST

星途 面试题库

面试题:Python文件操作中文件锁机制的基础应用

请简述Python中文件锁机制的作用,并使用`fcntl`模块实现一个简单的文件写锁示例代码,用于防止多个进程同时写入同一个文件。
46.1万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

文件锁机制的作用

在多进程或多线程环境下,文件锁机制用于确保在同一时间只有一个进程或线程能够对文件进行特定操作(如写入)。这可以防止数据竞争和文件损坏,保证数据的一致性和完整性。例如,在日志记录场景中,如果多个进程同时向同一个日志文件写入内容,可能导致日志记录混乱,文件锁机制可以避免这种情况发生。

使用fcntl模块实现简单文件写锁示例代码

import fcntl
import os


def write_to_file(file_path, content):
    with open(file_path, 'a') as f:
        try:
            fcntl.flock(f, fcntl.LOCK_EX)
            f.write(content + '\n')
        finally:
            fcntl.flock(f, fcntl.LOCK_UN)


if __name__ == '__main__':
    file_path = 'test.txt'
    write_to_file(file_path, 'This is a test line')

上述代码定义了一个write_to_file函数,该函数接收文件路径和要写入的内容作为参数。在函数内部,使用fcntl.flock获取文件的排他锁(fcntl.LOCK_EX),以确保在写入文件时没有其他进程同时写入。写入完成后,通过fcntl.flock释放锁(fcntl.LOCK_UN)。if __name__ == '__main__':块用于测试该函数,向test.txt文件写入一行测试内容。