繁体   English   中英

在Python中写入txt文件的最快方法

[英]Fastest way to write to a txt file in Python

我有一个奇怪的情况:我继承了一个项目,该项目具有多个同时运行以执行各种操作的Python进程。 这些过程是相互独立的。 不涉及多处理/线程。

我想添加一些功能,使它们在发生某些事件时通过单行更新写入单个文本文件,然后可以稍后(可能在单独的服务器上)进行解析以收集统计信息。

我正在寻找一种将这一行添加到文件的方法,如果其他进程之一试图同时执行同一操作,则不会引起问题。 如果可能的话,我不想将任何其他软件添加到堆栈中。

建议?

听起来您可能想尝试使用文件锁

lock = FileLock("/some/file/or/other")
while not lock.i_am_locking():
    try:
        lock.acquire(timeout=60)    # wait up to 60 seconds
    except LockTimeout:
        lock.break_lock()
        lock.acquire()
print "I locked", lock.path
lock.release()

http://pythonhosted.org/lockfile/lockfile.html#filelock-objects

使用队列http://docs.python.org/2/library/multiprocessing.html#multiprocessing.Queue 您所有的进程都可以将数据放入队列,其中之一可以获取数据并写入文件。

有一个单一的文件写入过程,而其他文件则排队等待消息写入。 这可以通过事件引发,消息队列,pyro,发布,您选择!

logging模块在设计上是线程安全的,它在标准库中,并且可以写入文件。

暂无
暂无

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

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