【发布时间】:2017-09-14 19:36:13
【问题描述】:
我使用多个 python 脚本收集数据并将其写入一个 json 数据文件。
无法合并脚本。
编写过程很快,经常会出现错误(例如末尾的某些字符重复),这是致命的,尤其是因为我使用的是 json 格式。
如果当前有其他脚本试图写入文件,有没有办法阻止 python 脚本写入文件? (如果 python 脚本试图写入文件的数据丢失,那绝对没问题,但重要的是文件语法不会以某种方式“受伤”。)
代码截断:
这会打开文件并检索数据:
data = json.loads(open("data.json").read())
这会附加一个新字典:
data.append(new_dict)
并且旧文件被覆盖:
open("data.json","w").write( json.dumps(data) )
信息: data 是一个包含字典的列表。
操作系统:漏洞过程发生在linux服务器上。
【问题讨论】:
-
这是一个与系统相关的问题。在 Windows 本地驱动器上,文件在写入时被锁定,因此您不能进行并发写入。在 linux 上,您可以进行并发写入。
-
如果你写在不同的文件上,你会如何组合结果?最后一个赢了?
-
@Jean-FrançoisFabre 一切都发生在 linux 服务器上
-
@Jean-FrançoisFabre 是的,没有合并,最后/或第一个获胜
-
您可以将数据写入不同的文件(以进程ID为后缀)并最终将它们组合在一起,但是如果顺序很重要,则必须按文件日期对它们进行排序(这也是可能的)
标签: python json python-2.7 file