使用Python的打印功能进行原子写入

时间:2019-03-08 14:17:47

标签: python python-3.x parallel-processing atomic pool

我想用Python的打印功能进行原子写。我已经找到了这个答案:

How can I do an atomic write to stdout in python?

但这使用sys.stdout.write。我想更灵活一些,而改用打印。当我用print实现相同的代码时,显然这很重要,因为我的输出结果是不正确的。

lock = Lock()
def synced_out(*inp):
    with lock:
        print(*inp, file=args.out, sep=args.field_seperator)

显然,我使用print而不是sys.stdout.write很重要。

此处提供完整代码,如果您认为这不可能,那么我可能在做其他错误:

https://termbin.com/s9ox

在损坏的情况下,文件为sys.stdout,但是我一直在使用重定向并将其发送到文件中。但是,我想保留--out标志,以便对“>文件不太了解的人们也可以使用它,或者如果它与管道一起使用,则只需保持这种灵活性即可。

Python 3.5.2
Linux Ubuntu 16.04

0 个答案:

没有答案