需要编写保存数据并将其写入文件的python脚本的一部分

时间:2015-02-24 00:03:57

标签: python qt

我目前正在使用python和qt designer作为从色度计获取浓度值的方法。我目前的GUI有三个按钮," Connect"," Calibrate"和"衡量"。每当我到达测量部分时,它只显示一个浓度值。如果您要在色度计中放置另一个样品,它将删除以前的值并将其替换为新值。

当我写入文件时,我只能保存我测量的最后一个样本,但我希望能够记录每一个测量值。

这是我目前为这个特定部分所写的内容:

def measureSample(self):
    sys.stdout.flush()
    freqD1, trandD1, absoD1 = dev.getMeasurement(LED_TO_COLOR='D1'])
    freqD2, trandD2, absoD2 = dev.getMeasurement(LED_TO_COLOR='D2'])
    absoDiff= absoD1 - absoD2
    Coeff= 1 
    Conc = absoDiff/Coeff
    Conc3SD = '{Value:1.{digits}f'.format(Value = Conc, digits=3)
    self.textEdit.clear()
    self.textEdit.setText('Concentration is {0}.format(Conc3SD))

    timeStr = time.strftime('%m-%d-%Y %H:%M:%S %Z')
    outFile = open('ConcentrationData.txt','w')
    outFile.write('{0} || Concentration: {1}'.format(timeStr, Conc3SD))
    outFile.close

所以,我的问题是,如何在没有出现在我的GUI上的情况下记录每个浓度值,以及如何将它们写入文件?非常重要的是我只显示一个值,而不是GUI上先前值的列表。

提前致谢!

-Marina

1 个答案:

答案 0 :(得分:2)

诀窍在于'w'来电中的open()。这意味着您要编写新文件。将其更改为'a'以附加到现有文件。有关详细信息,请参阅此处:https://docs.python.org/2/library/functions.html#open

另外,您可能会发现\n的文字字符串字符会在文件中创建一个新行(如果您想要Windows样式的新行,则需要\r\n - 没有它,打开像记事本这样的东西不会显示新的行)