在Python中使用Filelock获取函数时,如何将文本追加到文件中?

2024-05-23 18:53:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python中的filelock Lib锁定一个文件。有一个函数叫做acquire,我用它来锁定透视图。你知道吗

import filelock as fl
lock = 'test.txt'
lock1 = fl.FileLock(lock)

with lock1.acquire(timeout=10):
    x = open(lock,'a+');
    print(x.write("Hello World"))
    lock1.release();
    x.close()

我已经用块在中打开了一个文件(追加模式)。但当我执行上述代码时,文本并没有附加到文件中,特别是with块中。它不是附加文本,而是像在write模式中那样进行覆盖。你知道吗

有人能帮我处理这个案子吗?你知道吗

提前谢谢。你知道吗


Tags: 文件函数文本importlocklibaswith
1条回答
网友
1楼 · 发布于 2024-05-23 18:53:25

使用filelock时,应使用文件名并添加后缀“.lock”

从filelockreadme

Don't use a FileLock to lock the file you want to write to, instead create a separate .lock file as shown above.

import filelock as fl
lock = 'test.txt'
lock1 = fl.FileLock(lock + '.lock')

with lock1.acquire(timeout=10):
    x = open(lock, 'a+')
    print(x.write("Hello World"))
    lock1.release()
    x.close()

使用上下文管理器的另一种语法:

from filelock import FileLock
file_name = 'test.txt'
lock_name = file_name + '.lock'

with FileLock(lock_name):
    with open(file_name, 'a+') as f:
        f.write('Hello World')

相关问题 更多 >