繁体   English   中英

Python - 如何防止文件被多次打开?

[英]Python - How can I prevent a file from being opened more than once?

我正在使用 discord.py 设计一个 Discord 机器人,并且需要将用户信息存储在文件中。 我担心的问题是,如果同时执行两个命令,机器人将尝试同时从两个脚本访问同一个用户的信息文件。 有没有一种非常简单的方法可以锁定文件访问? 我试过使用谷歌,但它并没有真正让我到任何地方,所以我正在尝试这个。

提前致谢!

您正在描述一种称为竞争条件的条件,它有很多不同的对抗方法,但我认为最好的方法是使用os.O_NONBLOCK

import os
with open('/path/to/file', 'a', os.O_NONBLOCK) as f:
    f.write('text')
    f.flush()

有关更多信息,请参阅答案

一般来说,我认为最好使用已经内置解决此问题的“真实”数据库(例如 SQLite 或 mongo)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM