Python 如何从两个线程安全地写入同一文件?

Python 如何从两个线程安全地写入同一文件?,python,multithreading,file,pyqt,Python,Multithreading,File,Pyqt,以下是上下文:我制作了一个Qt5程序来驱动一个源计,它将电信号应用于一个样本并测量其反应,实时将数据绘制到matplotlib。看起来是这样的: 绘图由主线程完成,测量/应用在另一个线程中完成,以便显示不会减慢测量速度 该程序还有一个按钮,可以从绘图中获取所有可用数据并将其存储在.csv文件中,但我正在考虑让它实时逐个写入值。我想为用户添加一个可选的输入来添加描述,因此存储的数据将是实际的I/V/时间列,有时会被诸如“t=60,示例闻起来很滑稽”之类的文本打断。将描述行写入文件将很容易,它只是一

以下是上下文:我制作了一个Qt5程序来驱动一个源计,它将电信号应用于一个样本并测量其反应,实时将数据绘制到matplotlib。看起来是这样的:

绘图由主线程完成,测量/应用在另一个线程中完成,以便显示不会减慢测量速度

该程序还有一个按钮,可以从绘图中获取所有可用数据并将其存储在.csv文件中,但我正在考虑让它实时逐个写入值。我想为用户添加一个可选的输入来添加描述,因此存储的数据将是实际的I/V/时间列,有时会被诸如“t=60,示例闻起来很滑稽”之类的文本打断。将描述行写入文件将很容易,它只是一个连接到一个小函数的按钮。问题是我的文件已经在其他地方打开了这是个问题吗?,我实际上不知道,如果是:

当测量线程打开文件时,如何从主线程安全地编写此附加描述文本?

提前感谢。

  • 在主线程中打开该文件
  • 将文件句柄传递给其他线程
  • 在每个线程中,在写入文件之前始终锁定

它是由两个线程共享的单个文件句柄吗?如果是这样的话,锁应该可以工作。是的,它是共享的单个文件。好的,谢谢你的信息。我开始读这篇文章了,但是有没有一个锁库是你特别建议的呢?干杯!您特别推荐的任何锁定库?请查阅
threading.Lock()
,并查看链接问题