python能否在不使用锁或互斥锁的情况下并行编写文件?

时间:2012-03-01 03:22:07

标签: python python-3.x

我有两个传入的流媒体,它们都很大。 我可以从文件的位置1到512刷新第一个数据 另一个从513到1023? 请注意两个流都来了 的平行。

谢谢!

2 个答案:

答案 0 :(得分:1)

不确定您的并行意味着什么,但您可以写入打开相同文件的两个不同文件对象。我假设您使用线程或事件循环并不重要。

>>> f1 = open("/tmp/foo", "a")
>>> f2 = open("/tmp/foo", "a")
>>> f1.write("a\n")
>>> f2.write("b\n")
>>> f1.close()
>>> f2.close()
>>> print open("/tmp/foo").read()
a
b

答案 1 :(得分:1)

当然,你可以做到。你保证得到正确的结果吗?否。使用Ignacio建议的锁定或mmap。

以下是一个很好的讨论:Python multiple threads accessing same file