gpt4 book ai didi

Python 多个用户同时追加到同一个文件

转载 作者:IT老高 更新时间:2023-10-28 20:33:42 33 4
gpt4 key购买 nike

我正在编写一个可以通过网络访问的 python 脚本,因此会有多个用户尝试同时附加到同一个文件。我担心这可能会导致竞争条件,如果多个用户同时写入同一个文件,它可能会损坏文件。

例如:

#!/usr/bin/env python

g = open("/somepath/somefile.txt", "a")
new_entry = "foobar"
g.write(new_entry)
g.close

我是否必须为此使用锁定文件,因为此操作看起来有风险。

最佳答案

您可以使用 file locking :

import fcntl
new_entry = "foobar"
with open("/somepath/somefile.txt", "a") as g:
fcntl.flock(g, fcntl.LOCK_EX)
g.write(new_entry)
fcntl.flock(g, fcntl.LOCK_UN)

请注意,在某些系统上,如果您只编写小缓冲区,则不需要锁定,因为 appends on these systems are atomic .

关于Python 多个用户同时追加到同一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11853551/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com